#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generateNumber(int n1, int n2){
int n;
while (1){
n = rand()% 9 +1;
if(n != n1 && n != n2){
break;
}
}
return n;
}
int getInput(int prompt){
int num;
printf("1~9까지의 무작위 숫자를 입력해주세요");
scanf("%d", &num);
return num;
}
int checkGuess(int com1, int com2, int com3, int user1, int user2, int user3){
int strike = 0;
int 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 볼입니다.\n", strike, ball);
return strike;
}
void playGame(){
int com1, com2, com3;
int user1, user2, user3;
int round = 0;
com1 = generateNumber(0,10);
com2 = generateNumber(com1, 10);
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 사이 숫자만 입력하세요.");
continue;
}
if (user1 == user2 || user2 == user3 || user1 == user3){
printf("서로 다른 숫자를 입력하세요.");
continue;
}
round++;
if(checkGuess(com1, com2, com3, user1, user2, user3) == 3){
printf("3스트라이크! 정답입니다! 총 %d 라운드만에 성공!\n", round);
break;
}
}
}
int main() {
srand((unsigned int)time(NULL)); // 난수 초기화는 여기서 한 번만
playGame();
return 0;
}