파이썬 기초를 알고 있죠—이제 실제로 뭔가를 만들어 봅시다
Source: Dev.to
Who This Is For
Python 기본 과정이나 튜토리얼을 마친 분들을 위한 내용입니다. 변수, 반복문, 조건문, 문자열을 이해하고 있지만 아직 실제로 무언가를 만들어 본 적은 없는 단계에 있습니다. 이 프로젝트는 바로 그 단계에 맞춰져 있습니다.
저는 텍스트 어드벤처 게임을 오픈소스로 공개했으며, 기본 개념들을 하나의 실행 가능한 프로그램으로 결합했습니다.
Repo:
What You’ll Practice
| 개념 | 사용 방법 |
|---|---|
| Variables & Data Types | 게임 상태, 방, 플레이어 정보 |
| Dictionaries | 게임 세계를 위한 중첩 데이터 |
| Operators | 체력 체크, 아이템 포함 여부 |
| String Methods | .strip(), .lower(), .split(), .join() |
| User Input | 인터랙티브 input() 게임 루프 |
| Conditionals | 명령어를 위한 if‑elif‑else 및 match/case |
| While Loops | 메인 게임 루프 |
| For Loops | enumerate() 로 인벤토리 순회 |
| Type Hints | 자체 문서화 함수 시그니처 |
핵심은 새로운 문법을 배우는 것이 아니라, 이미 알고 있는 개념들을 조합하는 것입니다.
How to Get the Most from This
코드를 그냥 실행하지 마세요. 대신:
- 먼저 코드를 읽으세요 – 메인 루프를 추적하고
go north혹은take torch같은 명령을 입력했을 때 어떤 일이 일어날지 예측해 보세요. 그런 다음 실행해서 머릿속 모델을 확인합니다. - 일부를 의도적으로 깨뜨려 보세요 – 한 줄을 삭제하거나 조건을 바꿔 보고 오류가 어떻게 발생하는지 관찰합니다. 이렇게 하면 각 부분이 실제로 무엇을 하는지 알 수 있습니다.
- 확장해 보세요 – 레포에는 연습 과제가 포함되어 있습니다:
- 새로운 방과 아이템 추가
- 잠긴 문 퍼즐 구현 (키 필요)
- 점수 시스템 추가
- 새로운 랜덤 이벤트 만들기
기존 코드를 기반으로 확장하는 것은 실제 프로젝트와 매우 흡사합니다.
The Pattern You’ll Keep Using
메인 게임 루프는 다음과 같습니다:
while game_running:
# Check win/lose conditions
# Display current state
# Get player input
# Process command
# Trigger random events
이 읽기 → 처리 → 업데이트 → 표시 패턴은 어디서든 나타납니다:
- CLI 도구
- 채팅 애플리케이션
- AI 챗봇 (사용자 메시지 읽기 → LLM에 전달 → 응답 표시 → 반복)
- 게임 엔진
- REPL
이 패턴을 이해하면 모든 인터랙티브 프로그램에서 쉽게 인식할 수 있습니다.
Requirements
- Python 3.10+ (
match/case문법 필요) - 외부 의존성 없음
git clone https://github.com/samuel-ochaba-dev/zero-to-ai-engineer-projects.git
cd zero-to-ai-engineer-projects/dungeon-escape-text-adventure-game
python3 adventure_game.py
Sample Gameplay
========================================
DUNGEON ESCAPE
========================================
You wake up in a dark dungeon.
Find the exit to escape!
Type 'help' for available commands.
You are in the Entrance Hall.
A dusty entrance with cobwebs covering the walls.
A faint light flickers from the north.
Exits: north, east
Items here: torch
Health: 100 | Inventory: empty
What do you do? >
방을 이동하고, 아이템을 모으며, 랜덤 이벤트를 견디고, 탈출구를 찾아보세요. “while 루프가 뭔지는 안다”에서 “while 루프를 사용해 게임 루프를 만들 수 있다”로의 전환은 큰 도약이며, 이 프로젝트가 그 전환을 구체적으로 보여줍니다.
내 다가오는 책 Zero to AI Engineer: Python Foundations 에서 발췌한 내용입니다.
이와 같은 발췌를 Substack에 공유하고 있습니다 →