number_baseball.exe
//[3-7-3] 숫자야구 2011. 11. 27 강동우
#include <time.h>
#include <stdio.h>
#include <windows.h>
int playgame();
void make_num();
void intro();
char com[4]="123";
void intro()
{
printf(" ==================================\n");
printf(" 숫자야구 게임(3자리수 맞추기)\n");
printf(" ==================================\n");
printf(" 만든사람 : 숭의초 강동우\n");
printf(" 도움 : 하늘바다영재교육원\n");
printf("┌─────────────────────┐\n");
printf("│strike는 위치와 숫자가 모두 맞는 것이고, │\n");
printf("│ball은 숫자만 맞은 것입니다 │\n");
printf("│strike가 3이면 정답입니다 │\n");
printf("└─────────────────────┘\n");
//getchar();
}
void make_num()
{
srand(time(NULL));
int x;
while(1)
{
x=rand() %899 +100;
itoa(x, com, 10);
if(com[0]==com[1] || com[0]==com[2] || com[1]==com[2])
continue;
else
return;
}
}
int playgame()
{
int count;
int strike, ball;
int h;
char user[3];
count =0;
while(1)
{
count++;
printf(" %d번째 도전 3자리수 입력: ", count);
scanf("%s", &user);
fflush(stdin);
strike=ball=0;
for(int i=0; i<3; i++)
if(user[i]==com[i]) strike++;
if(user[0]==com[1] || user[0]==com[2]) ball++;
if(user[1]==com[0] || user[1]==com[2]) ball++;
if(user[2]==com[0] || user[2]==com[1]) ball++;
if(strike>2 || count >100000000) break;
printf(" %d strike, %d ball\n", strike, ball);
if(count==10)
{
printf(" 첫 숫자 힌트 %c\n", com[0]);
}
else if(count==15)
{
printf(" 긑 숫자 힌트 %c\n", com[2]);
}
else if(count>=20)
{
printf(" 정답은 %s\n", com);
}
strike=0, ball=0;
}
return count;
}
///////////////////////////////////////////////////////////////
void main()
{
int result;
char ch;
intro();
while(1)
{
make_num();
//printf(" ==================================\n");
//printf("숫자야구 게임(3자리수 맞추기)\n");
//printf(" ==================================\n");
result=playgame();
printf("\n%d 번에 맞춤 \n\n계속하시겠습니까? (y/n)", result);
ch=getchar();
if(ch!='y') break;
}
}