Code of AI

[ChatGPT] 숫자 야구 게임 Python 코드

별별AI 2023. 9. 7. 10:52
728x90

[요청]
세 자리 자연수를 랜덤으로 만드는데, 중복된 숫자가 없게 만들고, 그 수를 맞추는 게임을 파이썬으로 코딩해줘. 숫자의 자리까지 맞으면 “스트라이크”, 자리는 맞지 않는데 숫자가 있으면 “볼”, 세자리 숫자가 모두 없으면 “아웃”이라고 해줘.


[ChatGPT의 답변]
중복된 숫자가 없는 세 자리 자연수를 랜덤으로 생성하고, 사용자가 이 숫자를 맞추는 게임을 파이썬으로 구현해보겠습니다. 아래는 그런 게임을 위한 코드 예제입니다:


[코드]
import random

# 중복 없는 세 자리 자연수 생성
def generate_unique_random_number():
    digits = list(range(10))
    random.shuffle(digits)
    return ''.join(map(str, digits[:3]))

# 비교 함수
def compare_numbers(random_number, user_guess):
    strikes = 0
    balls = 0

    for i in range(3):
        if random_number[i] == user_guess[i]:
            strikes += 1
        elif user_guess[i] in random_number:
            balls += 1

    if strikes == 3:
        return "정답입니다!"
    elif strikes > 0 or balls > 0:
        return f"{strikes} 스트라이크, {balls} 볼"
    else:
        return "아웃"

# 게임 실행
if __name__ == "__main__":
    random_number = generate_unique_random_number()
    attempts = 0

    print("중복 없는 세 자리 숫자 맞추기 게임을 시작합니다!")

    while True:
        user_guess = input("세 자리 숫자를 입력하세요: ")

        if not user_guess.isdigit() or len(user_guess) != 3:
            print("올바른 형식의 숫자를 입력하세요.")
            continue

        attempts += 1
        result = compare_numbers(random_number, user_guess)

        print(result)

        if result == "정답입니다!":
            print(f"축하합니다! {attempts}번 만에 맞추셨습니다.")
            break



[설명]
이 코드는 중복 없는 세 자리 숫자를 랜덤으로 생성하고, 사용자가 이 숫자를 맞출 때까지 힌트를 제공합니다. 정답을 맞출 때까지 몇 번의 시도가 걸리는지 확인할 수 있습니다.


[결과 확인]


백의 자리에 0이 나오지 않도록 더 구체적인 요청 필요.

728x90