Pythonの小規模プロジェクト1:脱出ゲームを作る
この記事はAIの支援を受けて原文を翻訳したものです。専門用語や数式は原文とあわせて確認してください。
Pythonで作る脱出ゲーム
こんにちは。今回はPythonを使って、簡単な脱出ゲームを作ってみます。ルールは簡単です。ランダムに設定された3桁の暗証番号を見つけて脱出します。暗証番号を10回以上間違えたり、途中で「re」と入力したりすると、ゲームが再開します。このゲームは、Pythonの基本的な入出力、条件分岐、繰り返しを使って作れます。

ゲームを始める
まず、ゲームを始める前に、暗証番号をランダムに生成する必要があります。Pythonのrandomモジュールを使い、0から9までの数字をランダムに3個選んで暗証番号に設定します。
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()
本文の理解を助けるために制作したオリジナルイラストです。
Tistoryの原文 ↗