#include <stdlib.h>
#include <time.h>
#include <stdio.h>
// ⚾ 야구게임 ⚾
int generateNumber(int num1, int num2){ //랜덤숫자
int randNum;
while(1){
randNum = rand() % 9 + 1;
if(randNum != num1 && randNum != num2){
break;
}
}
return randNum;
}
int getInput(int prompt){ //사용자 입력받기
int num;
printf("%d 번쨰 숫자 (1~9)", prompt);
scanf("%d", &num);
return num;
}
int checkGuess(int com1, int com2, int com3, int user1, int user2, int user3){ //점수판단
int strike = 0, ball = 0;
if(com1 == user1) strike++;
if(com2 == user2) strike++;
if(com3 == user3) strike++;
if(com1 == user2 || com1 == user3) ball++; //애초에 스트라이크면 볼 판단까지 넘어오지 않음
if(com2 == user1 || com2 == user3) ball++;
if(com3 == user1 || com3 == user2) ball++;
printf("결과: %d 스트라이크, %d 볼", strike, ball);
return strike;
}
void playGame(){ //게임 본체
int com1, com2, com3;
int user1, user2, user3;
int round = 0;
com1 = generateNumber(0,0);
com2 = generateNumber(com1, 0);
com3 = generateNumber(com1, com2);
printf("⚾ 숫자 야구 게임을 시작합니다! \n");
while(1){
user1 = getInput(1);
user2 = getInput(2);
user3 = getInput(3);
//범위 밖 숫자 입력받았을 때
if(user1 < 1 || user1 > 9 || user2 < 1 || user2 > 9 || user3 < 1 || user3 > 9){
printf("1-9 사이 숫자만 입력하세요. \n");
continue;
}
if (user1 == user2 || user1 == user3 || user2 == user3){
printf("서로 다른 숫자를 입력하세요.\n");
continue;
}
round++;
if(checkGuess(com1, com2, com3, user1, user2, user3) == 3){ //3스트라이크
printf("3 스트라이크! 정답입니다! 총 %d 라운드 만에 성공!\n", round);
break;
}
}
}
int main(){
srand(time(NULL));
playGame();
return 0;
}