파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다!
드디어 2주차의 마지막 날입니다! 지난 14일 동안 변수부터 내장 함수까지 쉼 없이 달려오셨는데요. 오늘은 이 모든 개념을 하나로 엮어 '숫자 맞추기 게임'을 직접 제작해 보겠습니다.
코드를 한 줄씩 따라 치는 것에 그치지 않고, 각 로직이 왜 필요한지 고민하며 완성해 보세요!
무작정 코딩을 시작하기 전, 프로그램이 어떻게 돌아갈지 머릿속으로 그려보는 것이 중요합니다.
컴퓨터가 매번 다른 숫자를 뽑게 하려면 파이썬의 random 모듈이 필요합니다.
import random # 랜덤 기능을 가져옵니다. # 1부터 100 사이의 정수 하나를 뽑아 정답으로 저장 answer = random.randint(1, 100)
이제 while 루프와 if 조건문을 조합하여 게임을 완성해 봅시다.
import random
def play_game():
answer = random.randint(1, 100)
attempts = 0 # 시도 횟수
print("--- 숫자 맞추기 게임을 시작합니다 (1~100) ---")
while True:
guess = int(input("숫자를 입력하세요: "))
attempts += 1 # 입력할 때마다 횟수 증가
if guess == answer:
print(f"축하합니다! {attempts}번 만에 맞히셨습니다.")
break # 정답을 맞히면 무한 루프 탈출
elif guess < answer:
print("Up!")
else:
print("Down!")
# 게임 실행
play_game()
random으로 정답을 만들고, while + if/elif/else로 Up/Down 힌트를 제공하는 구조
그대로 실행하면 1~100 정답을 맞힐 때까지 반복합니다.
import random def play_game(): answer = random.randint(1, 100) attempts = 0 # 시도 횟수 print("--- 숫자 맞추기 게임을 시작합니다 (1~100) ---") while True: guess = int(input("숫자를 입력하세요: ")) attempts += 1 # 입력할 때마다 횟수 증가 if guess == answer: print(f"축하합니다! {attempts}번 만에 맞히셨습니다.") break # 정답을 맞히면 무한 루프 탈출 elif guess < answer: print("Up!") else: print("Down!") # 게임 실행 play_game()
입력 → 비교 → Up/Down → 정답 → 종료
Up/Down 힌트가 나오다가 정답을 맞히면 종료됩니다.
입력: 50 → Up!
입력: 70 → Up!
입력: 90 → Down!
입력: 82 → 정답! 🎉
--- 숫자 맞추기 게임을 시작합니다 (1~100) ---
숫자를 입력하세요: 50
Up!
숫자를 입력하세요: 70
Up!
숫자를 입력하세요: 90
Down!
숫자를 입력하세요: 82
축하합니다! 4번 만에 맞히셨습니다.
1. 형변환 (int): input()으로 받은 값은 문자열이므로 계산을 위해 반드시 정수로 바꿔줘야 합니다.
2. 무한 루프와 break: 정답을 맞히기 전까지는 계속 반복해야 하므로 while True:를 사용하고, 정답 시 break로 멈춰줍니다.
3. 변수 업데이트: attempts += 1을 통해 데이터가 실시간으로 변하는 과정을 관리합니다.
"더 똑똑한 게임 만들기"
1. 시도 횟수가 10번을 넘어가면 "실패! 정답은 X였습니다."라고 출력하고 종료되게 해보세요.
2. 숫자가 아닌 문자를 입력했을 때 에러가 나지 않도록 try-except 구문을 미리 찾아 적용해 볼까요?
댓글
댓글 쓰기