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...
    燕京博士阅读 7,616评论 1 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • Python简介 Python历史 Python 是由 Guido van Rossum 在八十年代末和九十年代初...
    莫名其妙的一生阅读 1,072评论 0 2
  • 今天虽然讲完了ppt,蛋用没有放松的感觉,觉得老师现在有点不喜欢我,我觉得我做的每一件事他都不喜欢,好郁闷啊,,,...
    姬旦鸡蛋一样阅读 213评论 0 0
  • 我从山中走来 像土豆 低价却不低廉 食多胀气 但更能维持生命 我从山中走来 像小草 孤独的在风中摇曳 倔强而又不屈...
    南山台子阅读 389评论 0 2