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
이 코드는 사용자로부터 세 자리 숫자를 입력받고, 그 입력값과 무작위로 생성된 숫자를 비교하여 스트라이크와 볼의 개수를 출력하고 게임이 끝날 때까지 이 과정을 반복한다.
게임이 끝날 때는 "정답입니다!"라는 메시지가 출력되고 프로그램이 종료된다.
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 |