terminal-escape-room — 작은 CLI 탈출 방 게임 (Python + Typer)
Source: Dev.to
개요
이 프로젝트는 GitHub Copilot CLI 챌린지를 위한 제출물입니다.
terminal-escape-room은 크로스‑플랫폼 CLI 텍스트 탈출‑방 게임입니다. JSON으로 정의된 방을 순차적으로 진행하고, 방당 최대 두 개의 힌트를 요청할 수 있으며, 답을 제출하고 점수를 획득합니다(힌트 사용 시 페널티 적용). 진행 상황은 로컬의 .escape_state.json 저장 파일에 지속됩니다.
기술 스택
- Python 3.11+
- Typer – CLI 프레임워크
- Rich – 포맷된 출력
- Pytest – 테스트 스위트
저장소
https://github.com/aisamposhen/terminal-escape-room
설치 및 빠른 실행
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[test]
# Commands
escape start
escape status
escape hint
escape answer "kernel"
escape reset
90초 데모 흐름
escape start
escape status
escape hint
escape answer "kernel"
escape answer "^"
escape answer "git switch -c feature"
개발 과정
GitHub Copilot CLI를 터미널‑우선 페어 프로그래머로 활용하여 다음을 빠르게 반복했습니다:
- Typer 명령 구조 (
start,status,hint,answer,reset) - 작은 엔진 레이어(방 진행 + 힌트 제한)
- 안정적인 JSON 지속 스키마(
started_at,finished_at) - 점수 규칙 및 테스트
잘 작동한 점:
프롬프트를 매우 구체적으로 작성(입력/출력, 엣지 케이스, 파일 경계)하고, 바로 pytest로 변경 사항을 잠그는 방식.
예시 워크플로우:
- Copilot CLI에 첫 번째 구현을 요청(모듈당 하나씩 집중).
- 테스트 실행.
- 엣지 케이스를 다루도록 테스트를 생성/조정하도록 Copilot CLI에 요청.
- 동작이 확정되면 리팩터링.
로컬 사용법
프로젝트는 자체적으로 동작하며 외부 서비스가 필요 없습니다. 위 설치 단계를 따라 로컬에서 직접 실행해 보세요.