<시나리오>

- 1 과 20 사이의 랜덤한 숫자를 맞추는 게임 프로그램을 생성한다.

- 프로그램 시작과 함께 "기회가 *번 남았습니다. 1 - 20 사이의 숫자를 맞혀 보세요."라는 문구를 통해 사용자에게 값을 받는다.

- 숫자를 맞출 수 있는 기회는 4번이며, 맞출 시 "축하합니다. *번 만에 숫자를 맞혔습니다."라는 문구와 함께 프로그램이 종료된다.

- 예상 숫자가 틀렸을 경우, 기회가 줄어들면서 다시 맞힐 수 있는 기회를 준다.

- 모든 기회를 소진했을 때에는 "아쉽습니다. 정답은 *입니다."라는 문구와 함께 프로그램을 종료한다.

 

[시도]

import random
count = 4  # 남은 기회 횟수 변수 설정
ANSWER = random.randint(1, 20)  # 상수 설정

while count > 0:
    guess = int(input(f"기회가 {count}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: "))
    if guess == ANSWER:
        print(f"축하합니다. {5 - count}번 만에 숫자를 맞히셨습니다.")
        break
    else:
        if guess > ANSWER:
            print("Down")
        else:
            print("Up")
    count -= 1

if count == 0:
    print(f"아쉽습니다. 정답은 {ANSWER}입니다.")

 

 

[모범 답안]

import random

# 상수 정의
ANSWER = random.randint(1, 20)
NUM_TRIES = 4

# 변수 정의
guess = -1
tries = 0

while guess != ANSWER and tries < NUM_TRIES:
    guess = int(input("기회가 {}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: ".format(NUM_TRIES - tries)))
    tries += 1    
    
    if ANSWER > guess:
        print("Up")
    elif ANSWER < guess:
        print("Down")

if guess == ANSWER:
    print("축하합니다. {}번 만에 숫자를 맞히셨습니다.".format(tries))
else:
    print("아쉽습니다. 정답은 {}입니다.".format(ANSWER))

 

본인이 자력으로 풀었던 방식은 게임 진행의 모든 과정을 while 문에 담아서 시도 횟수를 모두 소진했을 시 반복문을 탈출하고 마무리 멘트를 출력하도록 했지만, 모범 답안은 답안을 맞히는 과정과 결과를 출력하는 기능을 분리하여 코딩을 한 것을 알았다.

 

이렇게 간단한 프로그램을 코딩하는 경우에 어떤 방식이 맞다고 말하기에는 애매하지만 모범 답안에서 변수들을 더 깔끔하게 정의해놓은 점과 같은 결과를 다른 방식으로 코딩하는 방법을 익혀 생각의 폭을 넓힐 수 있었다.

'IT Self-study > Python' 카테고리의 다른 글

파이썬 실습(3): 단어 연습장  (0) 2025.04.17
파이썬 기초: 파일 읽고 쓰기  (0) 2025.04.17
파이썬 기초: 모듈  (0) 2025.04.11
파이썬 기초: 특별한 자료형의 특징  (0) 2025.04.06
파이썬 기초: 사전  (0) 2025.04.05