소스 문제점좀 잡아주세요
아이돌
문제
5*5의 2차원 배열을 구성하고 그안에 데이터를 랜덤 값으로 뿌려줍니다(rand 함수사용)
뿌려준 값을 유저에게 보여주지 않고 유저가 INT형을 입력받아 1~25까지의 수로 빙고게임을 실행합니다(배열 내에 랜덤하게 분류된값은 0으로 감추어둬어야합니다.)1을 입력하면 배열 내의 1값을 찾아 보여주고, 각 오픈된숫자가 3줄 이상이 되었을 때 게임을 종료해야합니다. 단, 대각선은 제외하며 직선방향의 값들만 적용해야하고. INT형 값 입력시 예외처리는 필수입니다.
(중복불가) 처음에 0으로 감춘게 입력하면 그숫자는 풀리게 해야되요.
지금안되는부분 1~25를 넣어보면 3줄이 안됬는데 게임이 끝나고 중복이있는것같아요#include stdio.h
#include windows.h
#include conio.h
void main()
{
int num[5][5];
int cod[5][5] = {
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}
};
int i, j, k, n;
int input;
int t = 0;
int o;
int c = 0;
srand(GetTickCount());
printf(Loding...\n);
for(i=0;i5;i++) {
for(j=0;j5;j++) {
A:
if(c==1) {
j--,i--;
c=0;
}
num[i][j] = rand()%25;
for(k=0;ki;k++) {
for(n=0;nj;n++) {
if(num[i][j] == num[k][n]) {
c = 1;
goto A;
}
}
}
}
}
while(1) {
for(i=0;i5;i++) {
for(j=0;j5;j++) {
if(cod[i][j]==0)
printf(%02d ,cod[i][j]);
else printf(%02d ,num[i][j]);
}
printf(\n);
}
o = 0;
printf(Number (1~25) : );
scanf(%d,&input);
if(input 1 || input 25) continue;
for(i=0;i5;i++) {
for(j=0;j5;j++) {
if(num[i][j] == input) {
printf(가로행 %d, 세로행 %d 번째 숫자 : %d \n,j+1,i+1,input);
cod[i][j] = 1;
t++;
goto B;
}
}
}
B:
if(t=3) {
for(i=0;i5;i++) {
for(j=0;j5;j++) {
if(cod[i][j]==1) {
if( j=2) {
if(cod[i][j-1]==1)
o++;
if(cod[i][j-2]==1)
o++;
}
if(i=2) {
if(cod[i][j-1]==1)
o++;
if(cod[i][j-2]==1)
o++;
}
if(j2) {
if(cod[i][j+1]==1)
o++;
if(cod[i][j+2]==1)
o++;
}
if(i2) {
if(cod[i+1][j]==1)
o++;
if(cod[i+2][j]==1)
o++;
}
&nbnbsp; if(o=2) {
printf(승리!);
getch();
return;
}
}
}
}
}
}
}
-
고양이
if(o=2) {
라는 조건을 만족하지 않을 경우에
다음 반복으로 가게 되면 다시 0으로 만들어줘야 될 것으로 생각됩니다.