bear_moved = False
while True:
next = raw_input("> ")
if next == "take honey":
dead("The bear looks at you then slaps your face off.")
elif next == "taunt bear" and not bear_moved:
print "The bear has moved from the door. You can go through."
bear_moved = True
elif next == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif next == "open door" and bear_moved:
gold_room()
else:
print "I got no idea what that means.
Это должно показать мое понимание булина. При тестировании линии next == "taunt bear" and not bear_moved
, если мой ввод равен taunt bear
, результатом будет True and True
, который продолжит цикл.True & False Boolean in Python
Так что меня смущает линейное тестирование next == "taunt bear" and bear_moved
. Если мой ввод taunt bear
, то он должен быть "taunt bear" == "taunt bear"
и bear_moved
который True and True
? что означает, что цикл будет продолжаться, а не отменять его.
Что именно должен делать этот код? – Lugubrious
у вас нет условия выхода из цикла, даже если вы звоните в gold_room, вы все еще находитесь в этом цикле комнат – cmd
Ваша петля никогда не отменяется; он всегда продолжается. –