私はPythonでテキストベースのアドベンチャーゲームに取り組んでいます。超豪華なものはありません。2 つの異なる部屋のレバーで、3 番目の部屋のゲートのロックを解除したいと考えています。ゲートのロックを解除するには、両方のレバーを引く必要があります。
ここにレバーのある2つの部屋があります。
def SnakeRoom():
choice = raw_input("> ")
elif "snake" in choice:
FirstRoom.SnakeLever = True
print "As you pull the lever... You hear something click down the hall behind you."
SnakeRoom()
elif "back" in choice:
FirstRoom()
else:
dead("Arrows shoot out from the walls. You don't make it.")
def WolfRoom():
choice = raw_input("> ")
elif "wolf" in choice:
FirstRoom.WolfLever = True
print "As you pull the lever... You hear something click down the hall behind you."
WolfRoom()
elif "back" in choice:
FirstRoom()
else:
dead("Arrows shoot out from the walls. You don't make it.")
こちらが門のある部屋。
def FirstRoom():
Lever = WolfLever and SnakeLever
choice = raw_input("> ")
if "straight" in choice and Lever != True:
print "You see a large gate in front of you. The gate is locked, there doesn't seem to be any way to open it."
FirstRoom()
elif "straight" in choice and Lever == True:
SecondRoom()
elif "left" in choice:
WolfRoom()
elif "right" in choice:
SnakeRoom()
elif "lever" in choice:
print "WolfLever: %s" % WolfLever
print "SnakeLever: %s" % SnakeLever
print "Lever: %s" % Lever
FirstRoom()
コードを短くしたので、不要なものをすべて読む必要はありません。
私の最大の問題は、私がまだ Python 言語にあまり慣れていないことです。そのため、探している答えを見つけるためにすべてをどのように表現すればよいかわかりません。
編集: FirstRoom.WolfLever の代わりに、WolfLever をコードの本文の Start() の上で使用してみました:
WolfLever
SnakeLever
Lever = WolfLever and SnakeLever
しかし、私の関数はこれらの値を更新していませんでした。というわけで、FirstRoomを試してみました。アプローチ。