텍스트 기반 게임이란?
파이썬을 처음 배우는 사람들에게 가장 재미있고 성취감 있는 프로젝트 중 하나는 바로 텍스트 기반 게임 만들기입니다. 텍스트 기반 게임은 그래픽 없이 터미널(콘솔)에서 텍스트만으로 진행되는 게임으로, 간단한 구조로 게임 개발의 기본을 익힐 수 있습니다. 텍스트 기반 게임의 장점은 다음과 같습니다:
- 복잡한 그래픽 없이 로직 구현에 집중할 수 있음
- 조건문, 반복문, 함수, 리스트, 딕셔너리 등 기본기 통합 연습 가능
- 생각보다 재미있고 창의적인 요소를 쉽게 추가할 수 있음
- 완성 후 성취감이 크고 다른 사람에게도 공유하기 쉬움
대표적인 텍스트 기반 게임으로는 숫자 맞추기, 선택형 RPG, 가위바위보 등이 있습니다.
숫자 맞추기 게임 만들기
import random
answer = random.randint(1, 100)
tries = 0
print("숫자 맞추기 게임!")
print("1부터 100 사이의 숫자를 맞춰보세요.")
while True:
guess = input("숫자를 입력하세요: ")
if not guess.isdigit():
print("숫자만 입력해주세요.")
continue
guess = int(guess)
tries += 1
if guess < answer:
print("너무 작아요!")
elif guess > answer:
print("너무 커요!")
else:
print(f"정답입니다! 시도 횟수: {tries}회")
break
위 코드는 사용자가 숫자를 추측하며 정답을 찾는 간단한 게임입니다. 입력 값 검증, 조건문, 반복문, 랜덤 함수 사용을 모두 포함하고 있어 기본기를 연습하기에 매우 좋습니다.
선택형 텍스트 RPG 만들기
def intro():
print("당신은 어두운 동굴 앞에 서 있습니다.")
print("1. 동굴 안으로 들어간다.")
print("2. 마을로 돌아간다.")
choice = input("선택하세요 (1/2): ")
if choice == "1":
cave()
elif choice == "2":
print("당신은 마을로 돌아가 안전하게 하루를 마칩니다.")
else:
print("잘못된 입력입니다. 다시 선택하세요.")
intro()
def cave():
print("동굴 안은 어둡고 음산합니다.")
print("1. 왼쪽 길로 간다.")
print("2. 오른쪽 길로 간다.")
choice = input("선택하세요 (1/2): ")
if choice == "1":
print("괴물을 만나 전투가 벌어집니다!")
battle()
elif choice == "2":
print("당신은 보물을 발견했습니다! 게임 클리어!")
else:
print("잘못된 입력입니다.")
cave()
def battle():
print("괴물과의 전투가 시작됩니다.")
print("1. 공격한다.")
print("2. 도망친다.")
choice = input("선택하세요 (1/2): ")
if choice == "1":
print("용감히 싸워 이겼습니다! 축하합니다!")
elif choice == "2":
print("도망쳤지만 괴물이 쫓아와 게임 오버...")
else:
print("입력이 잘못되었습니다.")
battle()
intro()
이 RPG 게임은 함수별로 장면을 나누고, 선택에 따라 다른 결과가 나오는 구조로 되어 있습니다. 함수 호출, 분기 처리, 사용자 입력을 체계적으로 연습할 수 있는 예제입니다.
가위바위보 게임
import random
options = ["가위", "바위", "보"]
user = input("가위, 바위, 보 중 하나를 입력하세요: ")
computer = random.choice(options)
print(f"컴퓨터: {computer}")
if user == computer:
print("비겼습니다!")
elif (user == "가위" and computer == "보") or \
(user == "바위" and computer == "가위") or \
(user == "보" and computer == "바위"):
print("이겼습니다!")
else:
print("졌습니다!")
가위바위보 게임은 간단한 조건문과 랜덤 함수를 연습하기에 적절하며, GUI로도 확장하기 좋은 구조입니다. 그 외 텍스트 기반 게임을 더 흥미롭게 만들 수 있는 요소들은 다음과 같습니다:
- 랜덤 전투 요소 추가: 공격/회피 성공률 적용
- 아이템 시스템: 무기, 포션, 방어구 등 장착
- 체력/경험치 시스템: RPG 요소 강화
- 다중 엔딩: 선택에 따라 스토리 분기
- 객체 지향 구조: 플레이어/몬스터 클래스로 확장