/******************************************************************************
[문제] 숫자 야구 게임 프로그램 작성
아래 조건에 맞는 C언어 프로그램을 작성하시오.
[프로그램 설명]
- 컴퓨터는 1~9 사이의 서로 다른 정수 3개를 무작위로 선택한다.
- 사용자는 1~9 사이의 서로 다른 정수 3개를 입력한다.
- 입력값과 컴퓨터의 숫자를 비교하여 스트라이크(Strike)와 볼(Ball)을 계산한다.
· 스트라이크: 숫자와 위치가 모두 같음
· 볼: 숫자는 있으나 위치가 다름
- 3 스트라이크가 나올 때까지 게임을 반복 진행하며, 시도 횟수(라운드)를 기록한다.
- 최종적으로 정답과 함께 라운드 수를 출력한다.
[구현 조건]
다음의 함수들을 사용하여 구현할 것. 포인터 및 배열 사용은 금지하며, 함수 이름과 매개변수는 그대로 사용할 것.
1. int generateNumber(int n1, int n2)
- 1~9 사이 숫자를 하나 무작위로 생성하여 반환
- 인자로 전달된 n1, n2와 다른 숫자여야 함
- 총 3번 호출하여 com1, com2, com3을 완성할 것
2. int getInput(int order)
- 사용자로부터 숫자 하나를 입력받아 반환
- order는 안내 문구로 출력함 (예: "1 번째 숫자 (1~9): ")
- order는 안내 문구로 출력함 (예: "2 번째 숫자 (1~9): ")
- order는 안내 문구로 출력함 (예: "3 번째 숫자 (1~9): ")
3. int checkGuess(int com1, int com2, int com3, int user1, int user2, int user3)
- 컴퓨터 숫자와 사용자 입력을 비교하여 스트라이크/볼을 계산
- 결과는 "결과: X 스트라이크, Y 볼" 형식으로 출력
- 스트라이크 개수만 정수로 반환
4. void playGame()
- 게임의 전체 흐름을 제어
- com1~com3을 generateNumber로 생성
- user1~user3을 getInput으로 입력받음
- 중복 입력 또는 범위(1~9) 벗어난 경우 다시 입력받도록 처리
- checkGuess를 통해 판단하며, 3 스트라이크일 경우 성공 메시지와 라운드 수 출력 후 종료
[실행 예시]
⚾ 숫자 야구 게임을 시작합니다!
1 번째 숫자 (1~9): 1
2 번째 숫자 (1~9): 2
3 번째 숫자 (1~9): 3
결과: 1 스트라이크, 1 볼
1 번째 숫자 (1~9): 4
2 번째 숫자 (1~9): 5
3 번째 숫자 (1~9): 6
결과: 0 스트라이크, 2 볼
1 번째 숫자 (1~9): 7
2 번째 숫자 (1~9): 3
3 번째 숫자 (1~9): 2
결과: 3 스트라이크, 0 볼
3 스트라이크! 정답입니다! 총 3 라운드 만에 성공!
[주의사항]
- 포인터, 배열 사용 금지
- 함수 이름과 변수 이름은 문제에 제시된 것 그대로 사용할 것
- srand(time(NULL)); 는 main 함수에서 한 번만 호출
*******************************************************************************/