ex35写了一个游戏,代码贴上
from sys import exit
def gold_room():
print "This room is full of gold. How much do you take?"
choice = raw_input("> ")
if "0" in choice or "1" in choice:
how_much = int(choice)
else:
dead("Man, learn to type a number.")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit(0)
else:
dead("You greedy bastard!")
def bear_room():
print "There is a bear here."
print "The bear has g bunch of honey."
print "The fat bear is in front of another door."
print "How are your going to move the bear?"
bear_move = False
while True:
choice = raw_input("> ")
if choice == "take honey":
dead("The bear looks at your then slaps your face off.")
elif choice == "taunt bear" and not bear_move:
print "The bear has moved from the door. You can go through in now."
bear_move = True
elif choice == "taunt bear" and bear_move:
dead("The bear gets pissed off and chews your leg off.")
elif choice == "open door" and bear_move:
gold_room()
else:
print "I got no idea what thet means."
def cthulhu_room():
print "Here you see the great evil Cthulhu."
print "He, it, whatever stares at you and you go insane."
print "Do you flee for your life or eat your head?"
choice = raw_input("> ")
if "flee" in choice:
start()
elif "head" in choice:
dead("Well that waw tasty!")
else:
cthulhu_room()
def dead(why):
print why,"Good job!"
exit(0)
def start():
print "You are in a dark room."
print "There is a door to your right and left."
print "Which one do you take?"
choice = raw_input("> ")
if choice == "left":
bear_room()
elif choice == "right":
cthulhu_room()
else:
dead("You stumble around the room until you starve.")
start()
上面有一句代码有Bug,就是这一句 if "0" in choice or "1" in choice:因为通过raw_input()接收到的都是字符串类型,并不能直接判断是否为数字,我上网搜了一下,找到一个方法:
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
再结合上面的代码,这个问题就解决了,原代码写的很奇怪