아래 함수는 빙고게임 중 컴퓨터의 숫자 선택을 위한 함수입니다.
처음 몇번은 정상작동을 하다가 코드가 반복되다보면 컴퓨터가 if문의 조건인 if (Comtable[nRand] != 0)(배열값이 0이 아닐때 true) 를 무시하고
결과값 0을 내뱉는 경우가 발생하길래 코드를 하나하나 검증해가면서 확인을 해 봤습니다.
그런데 for문 쪽에서 오류나면서 25회 반복 후 가끔 -8억 단위의 숫자*(주소값으로 추정중입니다.) 를 내기도 해서 질문 드립니다.
어느부분에서 오류가 난거고 어떻게 해야 이 오류를 해결할수있을까요?
void ComSelect(int* usertable, int* Comtable)
{
int nRand;
int nSelect=0;
nRand = rand() & 25;
while (true)
{
if (Comtable[nRand] != 0)
{
nSelect = Comtable[nRand];
for (int i = 0; i < 25; i++)
{
if (Comtable[nRand] == usertable[i])
{
usertable[i] = 0;
Comtable[nRand] = 0;
break;
}
}
break;
}
else
{
nRand = rand() & 25;
}
}
cout << "컴퓨터 :" << nSelect< }
안녕하세요 게임 클래스 입니다.
해당 내용만으로는 문제를 파악하는데 어려움이 있습니다
C++ 파일와 헤더파일을 업로드 해주시면
코드를 파악하는데 더 용이할 것 같습니다.
sln 파일말고 c++파일로 파일첨부 부탁드려요~~