def escape_room_game():
print("あなたは閉じ込められた部屋にいます。部屋にはいくつかの手がかりが隠されています。")
print("その手がかりを元に、脱出の方法を見つけてください。\n")
# 部屋の情報とアイテム
items = {
"鍵": False,
"メモ": False,
"金庫": False,
"扉": False
}
clues = [
"部屋の隅に小さなメモが置かれている。",
"金庫には4桁の番号が必要なようだ。",
"扉には鍵がかかっていて、開けるには鍵が必要だ。",
"メモに書かれているのは「金庫の番号は1234」だ。"
]
# ゲーム進行状況
has_key = False
opened_safe = False
safe_code = "1234" # 金庫の番号
# 手がかりを管理する変数
clue_index = 0 # どの手がかりを表示したか
while True:
print("\n現在の状況:")
print("1. メモを見る")
print("2. 金庫を開ける")
print("3. 扉を開ける")
print("4. 部屋を調べる")
print("5. ゲーム終了")
choice = input("選択肢を入力してください(1/2/3/4/5):")
if choice == "1":
if clue_index < len(clues): # 手がかりが残っていれば表示
print(clues[clue_index]) # 現在の手がかりを表示
clue_index += 1 # 次の手がかりに進む
else:
print("もう手がかりは残っていません。")
# メモを見た状態にする
items["メモ"] = True # メモを見たことにする
elif choice == "2":
if not items["メモ"]:
print("金庫を開けるためにはメモを見て、番号を知る必要があります。")
else:
# メモに書かれた番号を入力する
code = input("金庫の4桁の番号を入力してください: ")
if code == safe_code:
print("金庫が開きました!中に鍵が入っています。")
has_key = True
items["金庫"] = True # 金庫を開けたことにする
else:
print("番号が違います。もう一度試してみてください。")
elif choice == "3":
if not has_key:
print("扉は鍵がかかっています。鍵が必要です。")
else:
print("扉を開けることができました!脱出成功です!")
break
elif choice == "4":
print("部屋の中には、メモと金庫があります。金庫の番号を思い出して調べてみましょう。")
elif choice == "5":
print("ゲームを終了します。ありがとうございました!")
break
else:
print("無効な選択肢です。もう一度選んでください。")
# ゲーム開始
if __name__ == "__main__":
escape_room_game()
code
手掛かりをもとにカギを見つけ脱出するゲーム
今回使ったコード
False/True:
文に対して真(True)偽(False)であるかを判定する。
# 部屋の情報とアイテム
items = {
"鍵": False,
"メモ": False,
"金庫": False,
"扉": False
}
else:
print("もう手がかりは残っていません。")
# メモを見た状態にする
items["メモ"] = True # メモを見たことにする
最初はアイテムをFalseにしておくことで”持っていない”状態を作る
その後メモを見終わったときにTrueにすることで”メモを見た・メモを持っている”状態になる。