#include <stdio.h>
#include <windows.h>
#include <time.h>
int main()
{
int baseball[4];
int user[4];
int i, j, flag=1;
int st, ball, out=0;
srand(time(NULL));
baseball[0] = rand() % 10;
while(baseball[0] == 0) // 처음값은 0이 들어가면 안된다.
baseball[0] = rand() % 10;
for(i=1; i<4; i++)
{
baseball[i] = rand() % 10;
// 앞의 값과 비교하여 다른 값을 저장한다.
while(1) // 같은 값이 나오면 계속 다시 랜덤 수 만들어 비교
{
flag=0;
for (j=0; j<i; j++)
{
if (baseball[j] == baseball[i])
{
baseball[i] = rand() % 10;
flag=1;
break;
}
}
if (flag == 0)
break;
}
}
/*
for(i=0; i<4; i++)
{
printf("%d ", baseball[i]);
//printf("%d ", user[i]);
}
printf("\n");
*/
printf("숫자 야구 게임 스타트!!\n");
printf("포아웃이면 게임 종료!!\n");
printf("포기는 음수를 입력!!\n\n");
while(1)
{
printf("숫자를 입력하세요(4자리) : ");
for (i=0; i<4; i++)
{
scanf("%d", user+i);
if (user[i] < 0)
{
printf("\n그것도 못맞춰? 게임종료!!\n");
printf("정답은 : ");
for(i=0; i<4; i++)
printf("%d ", baseball[i]);
printf("입니다.\n");
exit(1);
}
}
printf("입력한 숫자 카운트 결과 : ");
st = ball = 0;
for(i=0; i<4; i++)
{
for (j=0; j<4; j++)
{
if(user[i] == baseball[j])
{
if (i==j)
st++;
else
ball++;
}
}
}
// 카운트에 맞는 출력문
if (st==0)
{
if (ball==0)
{
out++;
printf("%d아웃!\n\n", out);
}
else
printf("%d볼~\n\n", ball);
}
else if (ball==0)
printf("%d스트라이크!\n\n", st);
else
printf("%d스트라이크! %d볼~\n\n", st, ball);
// 게임 종료 상황
if (out == 4) // 4아웃일 경우!!
{
printf("\n게임이 종료되었습니다.\n");
printf("정답은 : ");
for(i=0; i<4; i++)
printf("%d ", baseball[i]);
printf("입니다.\n");
exit(1);
}
if (st == 4) // 정답을 맞출 경우!!
{
printf("축하합니다.!! 정답입니다!!\n");
printf("게임이 종료되었습니다.\n");
exit(1);
}
}
return 0;
}
'프로그래머의 길 > C & C++' 카테고리의 다른 글
const의 정확한 이해 (0) | 2007.03.26 |
---|---|
조건부 컴파일 전처리 명령어 (0) | 2007.03.26 |
콘솔상에서 상자를 그려 위치 이동시키는 프로그램 (0) | 2007.03.23 |
#define 함수 활용 (0) | 2007.03.23 |
달력 알고리즘 & 프로그램 (0) | 2007.03.22 |