Study/C++ 빙고 게임 코딩하는 야구쟁이 2011. 9. 29. 20:18 #include #include "time.h" using namespace std; bool check_bingo(int board[][7]) { int i, j, sum, count = 0; // horizontal for(i = 0; i < 7; i++) { sum = 0; for(j = 0; j < 7; j++) { sum += board[i][j]; } if(sum == -7) count++; } // 세로로 5개의 숫자가 불러졌는지 검사하는 루틴 for(j = 0; j < 7; j++) { sum = 0; for(i = 0; i < 7; i++) { sum += board[j][i]; } if(sum == -7) count++; } // diagonal sum = 0; for(i = 0; i < 7; i++) { sum += board[i][i]; } if(sum == -7) count++; // 역 대각선 방향으로 5개의 숫자가 불러졌는지 검사하는 루틴 for(i = 0; i < 7; i++) { sum += board[i][6-i]; } if(sum == -7) count++; if(count >= 7) return true; else return false; } void check_board(int board[][7], int number) { int i, j; for(i = 0; i < 7; i++){ for(j = 0; j < 7; j++){ if(board[i][j] == number) board[i][j] = -1; } } } void make_board(int *board) { int i, temp, m, n; for(i = 0; i < 49; i++){ board[i] = i + 1; } srand(time(NULL)); for(i = 0; i < 200; i++){ m = rand() % 25; n = rand() % 25; temp = board[m]; board[m] = board[n]; board[n] = temp; } } void print_board(int board[][7]) { int i, j; for(i = 0; i < 7; i++){ for(j = 0; j < 7; j++){ cout.width(4); if(board[i][j] > 0) cout << board[i][j]; else cout << "**"; } cout << endl; } } void main(void) { int board[7][7]; int number; make_board((int*)board); print_board(board); do{ cin >> number; if(number == -1) break; check_board(board, number); print_board(board); if(check_bingo(board)){ cout << "BINGO !!\n"; break; } }while(true); }