본문 바로가기

[Python] 54강 텍스트 게임 완성하기

@도마22026. 1. 17. 18:00
728x90


이 강의는 파이썬 강의 54강입니다.
이전 강의에서는 텍스트 게임 로직을 설계했습니다.
이번 강의에서는 그 로직을 정리해서
하나의 텍스트 게임을 끝까지 완성합니다.

핵심은 이것입니다.
기능을 더하지 않고, 이미 정한 규칙으로 끝낸다.


완성의 기준부터 정하자

이번 강의의 완성 기준은 다음과 같습니다.

  • 상태: 체력(hp), 턴(turn)
  • 행동: 공격 / 회복 / 종료
  • 랜덤 요소 포함
  • 종료 조건 명확
    • 체력 0 이하
    • 사용자가 종료 선택

이 기준을 넘기지 않습니다.


1️⃣ 전체 구조 한눈에 보기

텍스트 게임의 전체 구조는 다음과 같습니다.

  1. 초기 상태 설정
  2. 게임 루프 시작
  3. 상태 출력
  4. 입력 처리
  5. 상태 변경
  6. 종료 조건 확인
  7. 게임 종료 출력

이 순서를
코드에서 그대로 유지합니다.


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
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차