ex34~ex35一个游戏

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。

再结合上面的代码,这个问题就解决了,原代码写的很奇怪

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    IT诸葛亮阅读 6,580评论 1 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,958评论 17 134
  • 今天虽然讲完了ppt,蛋用没有放松的感觉,觉得老师现在有点不喜欢我,我觉得我做的每一件事他都不喜欢,好郁闷啊,,,...
    姬旦鸡蛋一样阅读 113评论 0 0
  • 我从山中走来 像土豆 低价却不低廉 食多胀气 但更能维持生命 我从山中走来 像小草 孤独的在风中摇曳 倔强而又不屈...
    南山台子阅读 191评论 0 2
  • 风从南到北 我从北到南 风从北到南 我从南到北 我不是蒲公英 却有着一样的轻盈 逆风的骨头 被撕裂 仍固执的想砸疼大地
    日斜寒林阅读 772评论 3 5