728x90

이 강의는 파이썬 강의 54강입니다.
이전 강의에서는 텍스트 게임 로직을 설계했습니다.
이번 강의에서는 그 로직을 정리해서
하나의 텍스트 게임을 끝까지 완성합니다.
핵심은 이것입니다.
기능을 더하지 않고, 이미 정한 규칙으로 끝낸다.
완성의 기준부터 정하자
이번 강의의 완성 기준은 다음과 같습니다.
- 상태: 체력(hp), 턴(turn)
- 행동: 공격 / 회복 / 종료
- 랜덤 요소 포함
- 종료 조건 명확
- 체력 0 이하
- 사용자가 종료 선택
이 기준을 넘기지 않습니다.
1️⃣ 전체 구조 한눈에 보기
텍스트 게임의 전체 구조는 다음과 같습니다.
- 초기 상태 설정
- 게임 루프 시작
- 상태 출력
- 입력 처리
- 상태 변경
- 종료 조건 확인
- 게임 종료 출력
이 순서를
코드에서 그대로 유지합니다.
2️⃣ 초기 상태 설정
게임 시작 시
필요한 상태를 모두 정의합니다.
import random
hp = 10
turn = 1
MAX_TURN = 20
3️⃣ 게임 루프 만들기
게임의 심장입니다.
while hp > 0 and turn <= MAX_TURN:
print("턴:", turn)
print("체력:", hp)
체력과 턴이
종료 조건입니다.
4️⃣ 입력 처리와 행동 분기
플레이어의 선택에 따라
행동을 나눕니다.
choice = input("1: 공격 2: 회복 0: 종료 > ")
if choice == "1":
damage = random.randint(1, 3)
hp -= damage
print("공격! 데미지:", damage)
elif choice == "2":
heal = random.randint(1, 3)
hp += heal
print("회복! 회복량:", heal)
elif choice == "0":
print("플레이어가 종료를 선택했습니다.")
break
else:
print("잘못된 입력입니다.")
continue
잘못된 입력은
턴을 소비하지 않습니다.
5️⃣ 턴 증가
행동이 정상적으로 끝났을 때만
턴을 증가시킵니다.
turn += 1
print("-" * 20)
6️⃣ 게임 종료 처리
루프가 끝난 뒤
종료 메시지를 출력합니다.
if hp <= 0:
print("체력이 0이 되어 게임 오버입니다.")
elif turn > MAX_TURN:
print("턴 제한으로 게임이 종료되었습니다.")
print("게임 종료")
7️⃣ 전체 코드 모아보기
아래는 완성된 텍스트 게임 전체 코드입니다.
import random
hp = 10
turn = 1
MAX_TURN = 20
while hp > 0 and turn <= MAX_TURN:
print("턴:", turn)
print("체력:", hp)
choice = input("1: 공격 2: 회복 0: 종료 > ")
if choice == "1":
damage = random.randint(1, 3)
hp -= damage
print("공격! 데미지:", damage)
elif choice == "2":
heal = random.randint(1, 3)
hp += heal
print("회복! 회복량:", heal)
elif choice == "0":
print("플레이어가 종료를 선택했습니다.")
break
else:
print("잘못된 입력입니다.")
continue
turn += 1
print("-" * 20)
if hp <= 0:
print("체력이 0이 되어 게임 오버입니다.")
elif turn > MAX_TURN:
print("턴 제한으로 게임이 종료되었습니다.")
print("게임 종료")
8️⃣ 완성 후 체크리스트
아래를 체크해보세요.
- 시작과 종료가 명확한가
- 무한 루프가 없는가
- 상태가 한눈에 보이는가
- 더 만들고 싶지만 멈췄는가
마지막 항목이 중요합니다.
이번 강의 핵심 정리
- 설계한 로직만으로 게임을 완성한다
- 완성 기준을 넘기지 않는다
- 작은 게임 하나를 끝냈다
- 이 경험이 다음 단계의 연료다
728x90
'⚙️ Python > 💻 Python 기초' 카테고리의 다른 글
| [Python] 56강 표준 라이브러리 활용법 (이미 있는 도구를 쓰는 습관) (0) | 2026.01.18 |
|---|---|
| [Python] 55강 모듈과 import 개념 (코드를 파일로 나누기) (0) | 2026.01.17 |
| [Python] 53강 텍스트 게임 로직 설계하기 (0) | 2026.01.16 |
| [Python] 52강 랜덤(random)과 확률 개념 이해하기 (0) | 2026.01.16 |
| [Python] 51강 콘솔 게임 구조 이해하기 (게임은 프로그램의 집합) (0) | 2026.01.15 |