IdoCleanCode
article thumbnail
반응형

파이썬 튜토리얼

1 부터 100까지 숫자 중에 하나를 맞추는 간단한 게임 입니다.

 

숫자 맞추기 - 콘솔 게임
숫자 맞추기 - 콘솔 게임

게임 로직

랜덤 숫자 생성

random 모듈을 이용하여 1부터 100 사이의 랜덤 숫자를 생성합니다.

import random

def create_number():
    return random.randint(1, 100)

 

 

사용자 입력 처리

사용자로부터 숫자를 입력받습니다. 입력값이 1부터 100 사이의 숫자인지 확인하고, 아니면 다시 입력을 요청합니다.

def user_input():
    while True:
        try:
            guess = int(input("1부터 100까지 숫자를 입력하세요: "))
            if 1 <= guess <= 100:
                return guess
            else:
                print("1부터 100사이 숫자만 입력하세요.")
        except ValueError:
            print("숫자만 입력하세요.")

 

사용자 추측 검사

사용자가 입력한 숫자와 컴퓨터가 생성한 '정답'을 비교합니다. 입력한 숫자가 '정답'보다 큰지, 작은지, 아니면 정답인지를 알려줍니다.

def check_guess(guess, answer):
    if guess < answer:
        return "높은 숫자입니다."
    elif guess > answer:
        return "낮은 숫자 입니다."
    else:
        return "정답입니다."

 

게임 계속 여부 확인

정답을 맞춘 후에는 게임을 계속할지 묻습니다.

def continue_game():
    while True:
        user_input = input("계속하시겠습니까? (y/n): ")
        if user_input.lower() in ['y', 'n']:
            return user_input.lower() == 'y'
        else:
            print("잘못된 입력입니다. 'y' 또는 'n'을 입력해주세요.")

 

게임 로직 구현

위에서 만든 함수들을 결합하여 게임의 전체 로직을 만듭니다.

def play_game():
    while True:
        answer = create_number()
        while True:
            guess = user_input()
            result = check_guess(guess, answer)
            print(result)
            if result == "정답입니다.":
                print(f"축하합니다! 정답은 {answer}입니다.")
                break
        if not continue_game():
            break

play_game()

전체 코드

import random

def create_number():
    return random.randint(1, 100)

def user_input():
    while True:
        try:
            guess = int(input("1부터 100까지 숫자를 입력하세요: "))
            if 1 <= guess <= 100:
                return guess
            else:
                print("1부터 100사이 숫자만 입력하세요.")
        except ValueError:
            print("숫자만 입력하세요.")

def check_guess(guess, answer):
    if guess < answer:
        return "높은 숫자입니다."
    elif guess > answer:
        return "낮은 숫자 입니다."
    else:
        return "정답입니다."

def continue_game():
    while True:
        user_input = input("계속하시겠습니까? (y/n): ")
        if user_input.lower() in ['y', 'n']:
            return user_input.lower() == 'y'
        else:
            print("잘못된 입력입니다. 'y' 또는 'n'을 입력해주세요.")

def play_game():
    while True:
        answer = create_number()
        while True:
            guess = user_input()
            result = check_guess(guess, answer)
            print(result)
            if result == "정답입니다.":
                print(f"축하합니다! 정답은 {answer}입니다.")
                break
        if not continue_game():
            break

play_game()

 

프로그램 작동

숫자 맞추기
숫자 맞추기

 

 

배포

https://github.com/IdoCleanCode/python_project/tree/master/console-progrem/number-guessing-game

 

 

반응형
profile

IdoCleanCode

@IdoCleanCode

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!