c언어로 만든 야구게임 질문좀드리겠습니다 ㅜㅜ
유린
질문 제목 : 야구게임자리수와 숫자를 맞추면 strike 1이 증가 자리수는 틀렸으나 숫자만 맞으면 ball 증가하게 되는 소스입니다
그런데 만약에 처음에 자리수와 숫자를 맞춰 strike가 1이 증가하였는데 다시 입력하였을때 이 한게 맞았던게
잘못입력하면 1이 줄어들게 해야하는데 어떻게해야 하는건가요
다시 말씀드리면 만약 컴퓨터가 2 5 8 이었는데 제가 2 0 1 을 해서 스트라이크가 1이 올라갔는데 다시 입력할때
0 2 1 이렇게 입력을하면 스트라이크가 다시 0으로 되고 볼이 1증가해야되는데 이소스에서 뭘 더 추가해야되는지
잘 모르겠습니다 ㅜㅜ 질문 내용 :
#include stdio.h
#include stdlib.h //랜덤함수 사용하기위한 헤더파일
#include time.h // 컴퓨터 시간값을 씨드값으로 사용
int main(void)
{
int strike=0;
int ball=0; //스트라이크 위치와 숫자 맞춤, 볼 숫자만 맞춤
int i,j=0; //i는 선택 변수 j는 진행 횟수 변수
int user1,user2,user3,com1,com2,com3;
srand((int)time(null));
com1=rand()%(10)+1; //컴퓨터 랜덤값을 1부터 10까지
com2=rand()%(10)+1;
com3=rand()%(10)+1;
while(1)
{
printf(게임시작(1),진행 횟수(2), 종료(3)\n);
scanf(%d,&i);
if(i==3) //종료 클릭시
{
printf(야구 게임을 종료 하겠습니다\n);
break;
}
else if(i==2)
{
printf(현재 진행 횟수는 %d \n,j);
continue;
}
else
{
printf(게임을 시작하겠습니다\n);
}
while(1)//게임 반복구간을 위한
{
printf(1 ~ %d 수중 3가지를 선택하시오\n,10);
scanf(%d %d %d,&user1,&user2,&user3);
if(user1==com1) //유저와 컴퓨터 자릿수와 숫자가 일치하였을때
strike++;
else if(user1==com2 ||user1==com3) //유저와 컴퓨터가 자리수는 틀리고 숫자만 일치할때
ball++;
else if(user2==com2)
strike++;
else if(user2==com1 ||user2==com3)
ball++;
else if(user3==com3)
strike++;
else if(user3==com1 ||user3==com2)
ball++;j+=1;// 진행 횟수
printf(현재 %d strike!!! %d ball!!! 입니다 \n,strike,ball);
printf(현재까지의 진행 회수는 %d 번입니다 .\n,j);
if (strike==3)
{
break;
}} //중복 와일문 종료
} // 와일문 종료
return 0;
}
-
들햇님
strike 와 ball 을 0으로 초기화 하면 되여..