C++ Let's Make Games

C++ Let's Make Games

(11개의 수강평)

3444명의 수강생
무료
지식공유자 · 노근석
95회 수업· 총 43시간 40분수업
평생 무제한 시청
수료증 미발급 강의
수강 난이도 입문
노근석의 다른 강의
연관 로드맵
아직 다른 강의가 없어요.
코린이 프로필

iStar 초기화 코린이 10시간 전

  int iStar1 = 0, iStar2 = 0;

        for (int i = 0; i < 5; ++i)

        {

            iStar1 = iStar2 = 0;

            for (int j = 0; j < 5; ++j)

            {

                if (iNumber[i * 5 + j] == INT_MAX)

                    ++iStar1;

            }

            if (iStar1 == 5)

            {

                ++iBingo;

            }

 맨 위에 iBingo를 0으로 초기화 하는 이유는 직접 실행해보고 알았습니다.

그런데 iStar1, 2를 0으로 초기화 안하면 어떻게 되는지 궁금해서 저 라인을 지우고 실행해 봤더니 첫줄 *이 5개가 채워지기 전까지 빙고라인이 0이었다가 5개가 채워지는 순간 빙고라인이 5가 되고 그 이후 *이 추가되는 순간 1이 되서 아무리 *을 늘려도 빙고라인이 1에서 변하지 않던데요. 

이부분이 논리적으로 왜그렇게 되는건지 이해가 가질 않아서요...iStar를 매번 초기화 하는것과 않는것에 프로그램상 어떤 차이가 생기는 건가요?

처음 iStar가 0에서 i가 0 일때  j가 0~4까지 체크한 후 ++iStar를 해줘도  i가 1일때 다시 iStar1=iStar2=0; 에 의해서 iStar가 1이 아니라 다시 0이 되는거 아닌가요?

0
joylms99 프로필

같은 숫자반복 joylms99 1달 전

겹치는 숫자가 없게하기위해서 알려주신대로 shuffle과 swap을 이용했는데요, 같은 숫자가 나타나는 원인이 무엇일까요?

#include <iostream>

#include<time.h>

int main()

{

    using namespace std;

    //로또만들기

    //45개 수를 배열해놓고 6개랑 추가 숫자 1개를 가져다가 써야한다.

    //1~45까지의 '겹치지 않는' 수를 이용하기위해서는 조합의 개념으로 임의로 배열되어 잇는 상황에서 6개를 뽑는게 좋다.

    //일단45개를 배열해놓고 인덱스를 swap하면 이걸 반복하면 임의로 섞이면서 shuffle이 이루어진다.

    int iLotto[45] = {};

    for (int i = 0; i < 45; ++i)

    {

        iLotto[i] = i + 1;

    }

    //타임에 시드값을 주자

    srand(unsigned int(time(0)));

    //마음대로 뽑을 인덱스가 필요하다

    int iTemp, iIndex1, iIndex2;

    

     //이제 iLotto의 값을 섞어보자

    for (int i = 0; i < 100; ++i)

    {

        

        iIndex1 = rand() % 45;

        iIndex2 = rand() % 45;

      

        iTemp = iIndex1;

        iLotto[iTemp] = iLotto[iIndex1];

        iLotto[iIndex1] = iLotto[iIndex2];

        iLotto[iIndex2] = iLotto[iTemp];

    }

   

    //이제 6개 숫자와 추가숫자 1개를 뽑아보자

    

    for (int i = 0; i < 6; ++i)

    {

        cout << iLotto[i] <<"\t";

       

    }

    

    cout << "추가숫자:\t" << iLotto[7]; 

0
정민석 프로필

else if 정민석 1달 전

else if 예재했을떄 if 조건은 제외되니까  and 연산자를 사용하지 않아도 되지않나요

2
정민석 프로필

조건붙일때 정민석 1달 전

어처피 0이아닌숫자는 다 트루로 인식되는데. != 0 을 붙일필요가 있나요?

1
jay lee 프로필

char* is incompatible with parameter of type char* jay lee 3달 전

안녕하세요, 열심히 배우고 있는 학생입니다.

다름이 아니라, 강의를 따라 공부하는중에 오류가 나서 글을 남깁니다.

setMonster(_tagMonster* pMonsterArr)

{

pMonsterArr[0] = CreateMonster("고블린",.......)

}

이렇게 하면,  char* is incompatible with parameter of type char*이라는 오류가 납니다.

어떻게 해결할 수 있을까요?

2
신사과 프로필

쉬프트 연산자 이해가 잘 안됩니다. 신사과 2019.02.03

중 후반에 칠판에 적는 듯한 소리가 났는데 어떤 걸 적으셨는지.. 모르겠습니다.

int iHigh = 187;

int iLow = 13560;

int iNumber = iHigh;

iNumber <<= 16; // 187 0000 0000 0000 0000

// 187 = 1011 1011

// 즉 iNumber<<=16은 1011 1011 0000 0000 0000 0000 이고

// iLow=13560;은 0011 0100 1111 1000 이고

iNumber |= iLow; // 를 하면 OR이여서 1011 1011 0011 0100 1111 1000 이 되고

cout << "High: " << (iNumber >> 16) << endl; // 뒤에서 영(0)을 16개 날려보내면 1011 1011 만 남으니까 187 이고

cout << "Low: " << (iNumber & 0x0000ffff) << endl;

// 1011 1011 0011 0100 1111 1000

// 0000 0000 1111 1111 1111 1111

// 0000 0000 0011 0100 1111 1000 이 되니까 13560 이 되는 것이군요??

0
박규봉 Park 프로필

동영상 재생이 안되요 박규봉 Park 2018.04.26

동영상 재생이 안됩니다. 확인해주시면 정말 감사하겠습니다.

0
Gatner 프로필

실행 Gatner 2018.03.01

프로그램 작성 후에 빌드하고 실행시키면 자꾸 실행창이 켜지자 마자 꺼져버려요..

0
dd hold 프로필

소리가 안나와요 ㅜㅜ dd hold 2017.12.12
흐헝헝헣엉ㅎㅇ허ㅓㅎㅇ허어엏허 왜 소리가 안나와ㅠㅠ

0
Gatner 프로필

파일 문제 Gatner 2017.10.14
Win 32파일이 포함된 파일들은 어디서 다운받나요??

0
윤도균 김 프로필

강의가 총 몇강인가요 윤도균 김 2017.10.04
아직 다 안나온것인가요

0
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스