//[3-7-3] 숫자야구 2014.2.10 이도혁
#include <stdio.h>
#include <time.h>
#include <windows.h>
int playgame();
void make_num();
int result;
char ch;
int x;
int count=0;
int strike,ball;
char user[3];
char com[4]="123";//컴퓨터가 3자리수를 저장할 공간
void main()
{
while(1)
{
fflush(stdin);
make_num();//3자리 난수발생 함수호출
printf(" =================================\n");
printf(" 숫자야구 게임(3자리수 %s맞추기)\n",com);//game시 %s com삭제
printf(" =================================\n");
result=playgame();//게임하는 함수호출
count=0;
ch=getchar();
if(ch!='y' && ch!='Y')
{
break;
}
puts("");
}
}
void make_num()
{
srand(time(NULL));
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()
{
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[1]==com[0] || user[2]==com[0])//컴퓨터의 맨 앞의 숫자와 사람의 두번째, 세번째 숫자가 같을 때(볼이면)
{
ball++;
}
if(user[0]==com[1] || user[2]==com[1])//컴퓨터의 두번째 숫자와 사람의 첫번째, 세번째 숫자가 같을 때(볼이면)
{
ball++;
}
if(user[0]==com[2] || user[1]==com[2])//컴퓨터의 세번째 숫자와 사람의 첫번째, 두번째 숫자가 같을 때(볼이면)
{
ball++;
}
puts("");
printf("%d Strike(s), %d Ball(s)\n\n\n", strike, ball);
puts("");
if(strike==3)
{
printf("%d번에 맞추셨습니다.계속하시겠습니까? (y/n) : ",count);
break;
}
else if(count==10)
{
printf("맞추는데 실패하셨습니다.계속하시겠습니까? (y/n) : ",count);
break;
strike=0, ball=0;
}
}
return 0;
}
카페 게시글
C언어알고리즘초급반
//[3-7-3] 숫자야구 2014.2.10 이도혁
이도혁
추천 0
조회 4
14.02.18 16:03
댓글 0
다음검색