码迷,mamicode.com
首页 > 其他好文 > 详细

交互程序三

时间:2016-06-09 22:09:23      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

这个程序的核心内容就是def语句,if语句和while语句循环的重复使用。

参考: 习题—35

# coding: utf-8

def dead(why):                                                                         # 定义dead函数,exit()可用于退出循环
    print why, ‘YOU DEAD!‘                                                          #  exit(0) 表示正常退出,exit(1)表示发生了错误
    exit(0)

def start():
    print u">>>尊敬的客官,你的所在是红亭,曾经是当地第五座、也是唯一保存下来的\n\
    城门。始建于明天启元年。因通抵学宫,取增贤进士之意,故称进贤门。"
    print ">>>Choose: Turn east or western?"

    next = raw_input("Turn: ")                                                   

    if ‘east‘ in next:                                                                         
        tomb_of_goddness()                                                          # 跳到另一个地点
        
    elif ‘west‘ in next:
        tomb_of_general()
    else:
        dead(‘‘)

def tomb_of_goddness():
    print "-" * 80                                                                         # 重复打印"-"
    print u"山神: 来者何人,胆敢擅闯月容夫人圣地。"
    print u"山神: 还不速速退下。以免惊扰夫人安宁。"
    print ">>>Choose: ‘bow‘, ‘kneel‘, ‘flee‘, ‘taunt‘ or others?"
    MountainGod = True

    while True:                                                                           # 创建一个无限循环,直到dead() 或 exit(0)为止
        next = raw_input(">> ")
        print "-" * 80
        
        if ‘bow‘ in next or ‘kneel‘ in next and MountainGod:             # 由于上面的MountainGod是True,所以该if语句可以执行
            print u"我: 请问阁下可是,山神大人?后生,有礼了。在下初到宝地,\n\
                   未曾了解本地习俗,还望山神周知。"
            print u"山神: 月容夫人托梦给我,说今日会有一位斯文的书生来拜谒。\n\
                   想必就是你啦!"
            MountainGod = False

            print "Choose: ‘kneel‘, ‘flee‘, ‘taunt‘, or others."
                                                                                                                    # MountainGod已变为False,所以not MountainGod  

        elif ‘kneel‘ in next and not MountainGod:                                                     就是True,这样就确保了先执行的是上面的if语句。                                    
            print u"我: 后生谨奉上清香三支,祝告夫人圣灵。言不尽意,勿怪,勿怪!"     
            print u"我: 不瞒山神大人,后生也是误入山林,方知夫人之墓所在,初来乍到,\n\
            实对夫人之事不甚了解。"
            print u"山神: 月容夫人,是一位传奇的女子。她的事迹,在这片土地上广为\n\
            流传。我送你到一个地方,你就知道了。\n"
            ShuangXiZui()       
        elif ‘flee‘ in next:
            print u"我: 好一个凶巴巴的老头。三十六计,走为上。"
            start()
        elif ‘taunt‘ in next:
            print u"我: 好你个老头,说话这么粗鲁,吓唬谁啊?"
            monster_tower()    
        else:
            dead(‘‘)

def ShuangXiZui():
    print "-" * 80

    print u"我: 咦,我怎地站在小舟上,眼前是双江汇合,气势磅礴啊。更有皓月当空,夜色如水。"
    print u"....远处的海浪渐渐袭来,伴随阵阵渔歌...."
    print u"渔歌: 不远千里随夫来,哪知有去却无来。世上岂有天理诉,宁叫好人不长在?\n\
    唉,哀哉月容兮,不得与归?皓皓榕江兮,一分为二。双溪明月兮,难分清浊!"
    print "Choose: ‘boating‘, ‘praying‘ or others."
    next = raw_input(">> ")

    if ‘boat‘ in next:
        tomb_of_general()
    elif ‘pray‘ in next:
        temple()
    else:
        dead(‘‘)
def temple():
    print "-" * 80

    print u"有一寺庙兮,曾为夫人建。夫人名讳兮,曰扬州才女。悠悠侣云兮,依山傍水。"
    print u"钟声绕梁兮,情与铁坚。不绝于耳兮,缘从响续。"
    print u"我: 看来这是专为月容夫人建的寺庙啊,还有冯太爷写的钟铭。"
    exit(0)

def monster_tower():
    print "-" * 80

    print u"....宝塔玲珑,暗含乾坤,风起云涌,妖魔为患。...."
    print u"我: 妈呀,不该乱说话啊,镇魔塔,全都是妖怪啊。"
    print "Choose: ‘flee‘, ‘pray‘ or others."
    next = raw_input(">> ")

    if ‘flee‘ and ‘pray‘in next:
        start()
    elif ‘flee‘ or ‘pray‘ in next:
        dead(‘‘)
    else:
        moster_tower()
        
def tomb_of_general():
    print "-" * 80

    print u"....好一派鸟语花香,秀色可餐的风景,西湖泛舟,亭台楼阁!...."
    print u"....一行来到,宋抗元将军马发之墓...."
    print "Choose: ‘clean‘, ‘kneel‘, go‘ or others."
    general_moved = True
    
    while True:
        next = raw_input(">> ")
        print "-" * 80

        if ‘clean‘ in next or ‘kneel‘ in next and general_moved:
            print u"....只见芳草丛生,墓碑荒废...."
            print u"我: 看来潮州多人杰啊,前有月容夫人,后有马将军。"
            print u"我: 为民族英雄扫墓,是吾辈之幸啊!"
            general_moved = False

            print "Choose: ‘kneel‘, ‘go‘ or others."
        elif ‘kneel‘ in next and not general_moved:
            print u"路人: 小伙子,看来你也是个忠义之人,昔有诗人丘逢甲曾为将军赋诗:"
            print u"凭栏望,韩夫子祠,如此江山,争让前贤留姓氏。"
            print u"把酒吊,马将军墓,奈何天地,竟将残局付英雄。"
            print u"我: 想必...老人家可否为晚辈讲一讲马将军的英勇事迹?"
            print "....Hit Enter to continue or Ctrl+C to stop!..."
            raw_input(">> ")
            
            print u"马发,潮州海阳人(今潮安县),宋末潮州摧锋营副将,临危之际挺身而出,以孤城坚"
            print u"拒元兵。终因叛徒出卖,潮州城破,复退守金山子城,浴血战至最后一人,举家殉国。"
            print u"潮州是宋朝最后一座沦陷的州城,城破之后元兵屠城,是潮州历史最惨重的记忆之一。"
            exit(0)
        elif ‘go‘ in next:
            start()
        else:
            dead(‘‘)
    
start()

交互程序三

标签:

原文地址:http://www.cnblogs.com/Ruby517/p/5572780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!