숫자 빙고 게임 만들기
게임 규칙입니다.
5 X 5 크기를 가진 빙고 판에 1 ~ 25 의 숫자를 랜덤하게 배치합니다.
숫자를 입력하면 '#' 으로 변하며 가로, 세로, 대각선 한 줄이 모두 '#'이면
빙고 카운트가 1씩 완성됩니다.
총 빙고 카운트가 12면 완성!
#include <iostream>
#include <time.h>
using namespace std;
int searchBingo(int cleanArray[5][5])
{
int Bingo = 0;
int search[5];
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
search[j] = cleanArray[i][j];
}
if ( search[0] == search[1] && search[1] == search[2] && search[2] == search[3] && search[3] == search[4] )
{
Bingo++;
}
}
for ( int i = 0; i < 5; i++)
{
search[i] = 0;
}
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5; i++)
{
search[i] = cleanArray[i][j];
}
if ( search[0] == search[1] && search[1] == search[2] && search[2] == search[3] && search[3] == search[4] )
{
Bingo++;
}
}
for ( int i = 0; i < 5; i++)
{
search[i] = 0;
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (i == j)
{
search[i] = cleanArray[i][j];
}
}
if ( search[0] == search[1] && search[1] == search[2] && search[2] == search[3] && search[3] == search[4] )
{
Bingo++;
}
}
for ( int i = 0; i < 5; i++)
{
search[i] = 0;
}
for (int i = 0; i < 5; i++)
{
for (int j = 4; j >= 0; j--)
{
if ( i + j == 4 )
{
search[i] = cleanArray[i][j];
}
}
if ( search[0] == search[1] && search[1] == search[2] && search[2] == search[3] && search[3] == search[4] )
{
Bingo++;
}
}
for ( int i = 0; i < 5; i++)
{
search[i] = 0;
}
return Bingo;
}
void viewBingo(int cleanArray[5][5])
{
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (cleanArray[i][j] > 30)
{
cout << "\t" << (char)cleanArray[i][j];
}
else
{
cout << "\t" << cleanArray[i][j];
}
}
cout << endl;
}
}
void main()
{
srand((long)time(NULL));
int cleanArray[5][5];
int A, B, C, D, temp;
int setNum = 1;
int i,j;
int selectNum;
int bCount = 0;
// cleanArray에 1 ~ 25까지 순차적으로 넣음.
for (i=0; i<5; i++)
{
for (j=0; j<5; j++)
{
cleanArray[i][j] = setNum;
setNum++;
}
}
//----------------------------------------
// 숫자 섞기
for (i=0; i<100; i++)
{
A = rand() % 5;
B = rand() % 5;
C = rand() % 5;
D = rand() % 5;
temp = cleanArray[A][B];
cleanArray[A][B] = cleanArray[C][D];
cleanArray[C][D] = temp;
}
//-----------------------------------------
cout << " 빙고를 시작하겠습니다. " << endl;
viewBingo(cleanArray);
cout << endl;
cout << " 숫자를 입력하세요. " << endl;
cout << " 범위는 1 ~ 25 까지입니다. " << endl << endl;
while ( true )
{
cout << " -> ";
cin >> selectNum;
system("cls");
if ( selectNum < 1 || selectNum > 25 )
{
cout << " !!숫자 범위는 1 ~ 25 입니다. 다시 입력해주세요.!! " << endl;
}
for (i = 0; i < 5; i++)
{
for ( j = 0; j < 5; j++)
{
if ( cleanArray[i][j] == selectNum )
{
cleanArray[i][j] = '#';
}
}
}
bCount = searchBingo(cleanArray);
cout << " Bingo Count : " << bCount << endl;
viewBingo(cleanArray);
if (bCount == 12)
{
cout << " 빙고를 완성하셨습니다.!! " << endl;
break;
}
}
}
'- Programming > - C++' 카테고리의 다른 글
★ 16. 포인터의 활용 방법 (0) | 2015.12.29 |
---|---|
★ 15. 포인터의 사용 방법 (0) | 2015.12.29 |
★ 13. 숫자 야구 게임 만들기 (3) | 2015.12.29 |
★ 12. 랜덤 함수를 이용한 로또 번호 뽑기 - 2 (0) | 2015.12.28 |
★ 11. 랜덤 함수를 이용한 로또 번호 뽑기 - 1 (0) | 2015.12.28 |