<시나리오>
- 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 |