본문으로 바로가기

[c++]빙고게임 만들기 #2

category 프로그래밍/C++ 2018. 6. 25. 23:16

빙고게임 만들기 #1에서 진화된 2 버전입니다.

#include <iostream> #include <time.h> using namespace std; int main() { srand((unsigned int)time(0)); int iNumber[25] = {}; for (int i = 0; i < 25; i++) { iNumber[i] = i + 1; } int iTemp, idx1, idx2; for (int i = 0; i < 100; i++) { idx1 = rand() % 25; idx2 = rand() % 25; iTemp = iNumber[idx1]; iNumber[idx1] = iNumber[idx2]; iNumber[idx2] = iTemp; } int iBingo = 0; while (true) { system("cls"); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (iNumber[i * 5 + j] == INT_MAX) cout << "*\t"; else cout << iNumber[i * 5 + j] << "\t"; } cout << endl; } cout << "Bingo Line: " << iBingo << endl; //줄수가 5 이상일 경우 게임을 종료한다. if (iBingo >= 5) break; cout << "숫자를 입력하세요(0: 종료) : "; int input; cin >> input; if (input == 0) break; else if (input < 1 || input > 25) continue; //중복체크 변수 true 중복 ,false 중복x bool bAcc = true; //모든 숫자 검사후 입력한 같은 숫자가 있는지 비교 for (int i = 0; i < 25; ++i) { if (input == iNumber[i]) { bAcc = false; // 숫자를 *로 변경하기 위해 특수값 INT_MAX 로 해준다. iNumber[i] = INT_MAX; break; } } //bAcc 변수가 true일 경우 중복된 숫자를 입력해서 숫자를 *로 //바꾸지 못했으므로 다시 입력받게 continue 해준다. if (bAcc) continue; //빙고 줄 수를 체크하는것은 매번 숫자를 입력할때 마다 처음부터 //새로 카운트를 할것이다. 그러므로 iBingo 변수를 0으로 매번 //초기화하고 새롭게 줄 수를 구해주도록 한다. iBingo = 0; //가로, 세로 줄 수를 구해준다. int iCheck1 = 0, iCheck2 = 0; for (int i = 0; i < 5; i++) { iCheck1 = iCheck2 = 0; for (int j = 0; j < 5; j++) { // 가로 별 개수 if (iNumber[i * 5 + j] == INT_MAX) ++iCheck1; //세로 별 개수 if (iNumber[j * 5 + i] == INT_MAX) ++iCheck2; } //현재 줄의 가로 별 개수가 몇개인지 //iCheck1 변수에 들어가게 된다. //iCheck1이 값이 5이면 한줄이 모두 //*라는 의미이다. if (iCheck1 == 5) ++iBingo; if (iCheck2 == 5) ++iBingo; } //왼쪽 상단 -> 오른쪽 하단 대각선 체크 iCheck1 = 0; for (int i = 0; i < 25;i+=6) { if (iNumber[i] == INT_MAX) ++iCheck1; } if (iCheck1 == 5) ++iBingo; //오른쪽 상단에서 -> 왼쪽 하단 대각선 체크 iCheck1 = 0; for (int i = 4; i <= 20; i += 4) { if (iNumber[i] == INT_MAX) ++iCheck1; } if (iCheck1 == 5) ++iBingo; } return 0; }

출력결과


'프로그래밍 > C++' 카테고리의 다른 글

암시적(묵시적) DLL 만들기!!  (0) 2018.07.25
[c++]빙고게임 만들기 #1  (0) 2018.06.25