Python (learn python the hard way exercise 35) -
i'm working on zed shaw's learn python hard way.
in exercise 35, 1 finds program includes these lines:
def bear_room(): print "there bear here." print "the bear has bunch of honey." print "the fat bear in front of door." print "how going move bear?" bear_moved = false while true: next = raw_input("> ") if next == "take honey": dead("the bear looks @ slaps face off.") elif next == "taunt bear" , not bear_moved: print "the bear has moved door. can go through now." bear_moved = true elif next == "taunt bear" , bear_moved: dead("the bear gets pissed off , chews leg off.") elif next == "open door" , bear_moved: gold_room() else: print "i got no idea means."
all good. i'd give player chance survive, , warning, before losing game. came this:
def bear_room(): print "there bear here." print "there bear has bunch of honey." print "the fat bear in front of door." print "how going move bear?" bear_moved = false bear_moved_again = false while true: next = raw_input("> ") if next == "take honey": dead("the bear looks @ slaps face off.") elif next == "taunt bear" , not bear_moved: print "the bear moved door. can go through now." bear_moved = true elif next == "taunt bear" , bear_moved: print "the bear getting angry. don't taunt him again." bear_moved_again = true elif next == "taunt bear" , bear_moved_again: dead("the bear gets pissed off , chews leg off.") elif next == "open door" , bear_moved: gold_room() else: print "i got no idea means."
doesn't work: get, if taunt bear more once the: "the bear getting angry. don't taunt him again." string, on , over, whereas, i'd player able taunt animal twice (first move it, , getting warning second time) before losing. know why?
and question: if bear_moved set false (line 6), , (line 13) says:
elif next == "taunt bear" , not bear_moved:
wouldn't "and not" set bear_moved true?
any appreciated.
change line
elif next == "taunt bear" , bear_moved:
to
elif next == "taunt bear" , bear_moved , not bear_moved_again:
and line
elif next == "taunt bear" , bear_moved_again:
to
elif next == "taunt bear" , bear_moved , bear_moved_again:
in original edition, sentence "elif next == "taunt bear" , bear_moved:" tested before "elif next == "taunt bear" , bear_moved_again". if input "taunt bear" many times, 1 of "elif next == "taunt bear" , not bear_moved" , "elif next == "taunt bear" , bear_moved" always true. test, "elif next == "taunt bear" , bear_moved_again", never taken.
Comments
Post a Comment