파이썬으로 만드는 방탈출 게임
안녕하세요. 파이썬을 이용해 간단한 방탈출 게임을 만들어보는 시간을 가져보려고 합니다. 게임의 규칙은 간단합니다. 랜덤으로 설정된 3자리의 비밀번호를 찾아 탈출하는 것이죠. 만약 비밀번호를 10회 이상 틀리거나, 도중에 're'를 입력하면 게임이 재시작됩니다. 이 게임은 파이썬의 기본적인 입출력과 조건문, 반복문을 사용하여 만들 수 있습니다.
게임 시작하기
먼저 게임을 시작하기에 앞서, 비밀번호를 랜덤으로 생성해야 합니다. 파이썬의 random 모듈을 사용하여 0부터 9 사이의 숫자를 무작위로 세 개 선택하고, 이를 비밀번호로 설정합니다.
import random
def generate_password():
return [str(random.randint(0, 9)) for _ in range(3)]
비밀번호 입력과 검증
사용자로부터 비밀번호를 입력받아야 합니다. 각 자리의 숫자를 입력할 때마다, 그 숫자가 정답인지를 확인합니다. 정답이면 다음 숫자를 입력하도록 안내하고, 틀리면 힌트를 줍니다. 여기서 힌트는 사용자가 입력한 숫자가 정답보다 큰지 작은지를 알려줍니다.
def check_password(correct_password):
attempt_count = 0
wrong_count = 0
for i in range(3):
while True:
user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
if user_input.lower() == 're':
print("게임을 재시작합니다.")
return False
attempt_count += 1
if attempt_count >= 10:
print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
return False
if user_input == correct_password[i]:
print("정확합니다! 다음 자리수를 입력하세요.")
break
else:
wrong_count += 1
print("틀렸습니다. 다시 시도해주세요.")
if user_input < correct_password[i]:
print("힌트: 입력하신 숫자는 정답보다 작습니다.")
else:
print("힌트: 입력하신 숫자는 정답보다 큽니다.")
게임 재시작 기능
사용자가 게임 도중 're'를 입력하면 언제든지 게임을 새롭게 시작할 수 있습니다.
게임의 완성과 시도 횟수
비밀번호를 모두 맞췄을 때, 사용자에게 그들이 몇 번 틀렸는지 알려주고 성공 메시지를 출력합니다. 만약 10회 이상 틀리면 게임이 자동으로 재시작됩니다.
def check_password(correct_password):
attempt_count = 0
wrong_count = 0
for i in range(3):
while True:
user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
if user_input.lower() == 're':
print("게임을 재시작합니다.")
return False
attempt_count += 1
if attempt_count >= 10:
print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
return False
if user_input == correct_password[i]:
print("정확합니다! 다음 자리수를 입력하세요.")
break
else:
wrong_count += 1
print("틀렸습니다. 다시 시도해주세요.")
if user_input < correct_password[i]:
print("힌트: 입력하신 숫자는 정답보다 작습니다.")
else:
print("힌트: 입력하신 숫자는 정답보다 큽니다.")
마지막으로, 위 코드를 이용해서 만든 전체 코드는 다음 코드와 같습니다.
import random
# 비밀번호를 랜덤으로 생성하는 함수입니다.
def generate_password():
return [str(random.randint(0, 9)) for _ in range(3)]
# 사용자가 입력한 비밀번호를 검증하고 힌트를 제공하는 함수입니다.
def check_password(correct_password):
attempt_count = 0 # 시도 횟수를 카운트하는 변수입니다.
wrong_count = 0 # 잘못된 입력 횟수를 카운트하는 변수입니다.
for i in range(3):
while True:
user_input = input(f"{i+1}번째 자리의 숫자를 입력하고 엔터를 누르세요 (재시작하려면 're' 입력): ")
if user_input.lower() == 're':
print("게임을 재시작합니다.")
return False # 게임 재시작을 위해 False를 반환합니다.
attempt_count += 1
if attempt_count >= 10:
print("10회 이상 틀렸습니다. 게임을 다시 시작합니다.")
return False
if user_input == correct_password[i]:
print("정확합니다! 다음 자리수를 입력하세요.")
break
else:
wrong_count += 1
print("틀렸습니다. 다시 시도해주세요.")
if user_input < correct_password[i]:
print("힌트: 입력하신 숫자는 정답보다 작습니다.")
else:
print("힌트: 입력하신 숫자는 정답보다 큽니다.")
print(f"비밀번호를 맞추기 위해 총 {wrong_count}번 틀렸습니다.")
return True
# 게임을 시작하는 함수입니다.
def start_game():
print("방탈출 게임에 오신 것을 환영합니다. 비밀번호는 3자리 숫자입니다.")
while True:
correct_password = generate_password()
print(f"비밀번호가 설정되었습니다. (테스트를 위해 비밀번호를 출력합니다: {''.join(correct_password)})")
if check_password(correct_password):
print("비밀번호가 모두 맞습니다! 방탈출에 성공하셨습니다!")
break
# 게임을 시작합니다.
start_game()
'파이썬 코딩 아무거나(python)' 카테고리의 다른 글
| 윈도우 작업표시줄 숨기기 및 제거 방법: 단축키 및 자동화 설정 (0) | 2025.01.27 |
|---|---|
| 파이썬 설치하기(윈도우, 64비트) (0) | 2023.10.26 |