728x90
    
    
  반응형
    
    
    
  상대방이 생각한 3자리 숫자를 맞추는 야구게임의 규칙
- 게임 참가자는 상대방이 생각한 3자리 숫자를 맞추기 위해 3자리 숫자를 말한다.
- 상대방은 말한 숫자와 비교하여 세 자리 중에 하나의 숫자가 같고 자리도 같은 경우 "스트라이크(S)"로, 하나의 숫자는 맞지만 자리가 다른 경우 "볼(B)"로 알려준다. 맞는 숫자가 없을 경우 "아웃(O)"으로 알려준다.
- 게임 참가자는 상대방이 알려준 스트라이크와 볼의 수를 바탕으로 다시 1번 과정을 반복한다.
- 게임 참가자는 상대방이 생각한 숫자를 모두 맞출 때까지 1~3번의 과정을 반복한다.
예를 들어, 상대방이 숫자 123을 생각한 경우,
- 게임 참가자가 456을 말하면, 상대방은 "스트라이크: 0, 볼: 0"이라고 알려준다.
- 이어서 게임 참가자가 789를 말하면, 상대방은 "스트라이크: 0, 볼: 0"이라고 알려준다.
- 이렇게 게임 참가자가 123을 맞출 때까지 1~3번의 과정을 반복하면 된다.
반응형
    
    
    
  
이러한 규칙을 기준으로 파이썬 코드를 구현해보면 아래와 같다.
| import random def generate_random_number():     """     무작위로 세 자리 숫자를 생성합니다.     """     numbers = [str(i) for i in range(10)]     random.shuffle(numbers)     return "".join(numbers[:3]) def get_user_input():     """     사용자로부터 세 자리 숫자를 입력받습니다.     """     while True:         user_input = input("숫자를 입력하세요: ")         if user_input.isnumeric() and len(user_input) == 3:             return user_input         print("세 자리 숫자를 입력하세요.") def compare_numbers(answer, guess):     """     정답과 추측한 숫자를 비교하여 스트라이크와 볼의 개수를 반환합니다.     """     strikes = 0     balls = 0     for i in range(3):         if answer[i] == guess[i]:             strikes += 1         elif answer[i] in guess:             balls += 1     return strikes, balls def play_game():     """     게임을 시작합니다.     """     answer = generate_random_number()     print()     print("세 자리 숫자 야구 게임을 시작합니다!")     while True:         guess = get_user_input()         strikes, balls = compare_numbers(answer, guess)         if strikes == 3:             print("정답입니다!")             break         print(f"{strikes}스트라이크, {balls}볼입니다.")         print() play_game() | 
이 코드는 사용자로부터 세 자리 숫자를 입력받고, 그 입력값과 무작위로 생성된 숫자를 비교하여 스트라이크와 볼의 개수를 출력하고 게임이 끝날 때까지 이 과정을 반복한다.
게임이 끝날 때는 "정답입니다!"라는 메시지가 출력되고 프로그램이 종료된다.

728x90
    
    
  반응형
    
    
    
  '프로그래밍 > 파이썬' 카테고리의 다른 글
| 파이썬 - 블랙잭 게임 (0) | 2023.03.23 | 
|---|---|
| 파이썬 - 슬롯머신 게임 (0) | 2023.03.15 | 
| 파이썬 - 음원 MR / Vocal 분리 Spleeter (0) | 2022.11.10 | 
| 파이썬 - for 반복문 중복2 (0) | 2022.06.16 | 
| 파이썬 - for 반복문 중복1 (0) | 2022.06.15 |