习题35 一个if elif else 和函数的综合小游戏

# 从sys库中导入exit函数
from sys import exit


# 定义gold_room()函数
def gold_room():
    print("这个房间里全是金子你要拿走多少?")

    # 定义局部变量choice
    choice = input(">")
    # 创建if块,若choice中含有0 / 1,运行下一行代码
    if "0" in choice or "1" in choice:
        # 定义局部变量how_much
        how_much = int(choice)
    # 若choice中无0 / 1,运行如下代码
    else:
        dead("老兄学着写入数字吧!.")

    # 创建if块,若how_much > 50,运行下一行代码
    if how_much < 50:
        print("很好,你不贪心,你赢了啊!")
        exit(0)
    # how_much <= 50,则运行以下代码
    else:
        dead("你这个贪婪的人!")


# 定义bear_room()函数
def bear_room():
    # 打印字符串
    print("这里有一只熊.")
    print("熊有一串蜂蜜.")
    print("胖熊在另一扇门前.")
    print("你打算怎么赶走这只熊呢?")
    # 定义局部变量bear_moved为布尔表达式
    bear_moved = False

    # 创建while循环
    while True:
        # 创建局部变量choice
        choice = input(">")

        # 创建if块,若choice为take honey,则运行语句
        if choice == "拿走蜂蜜":
            dead("熊看着你,抓了你的脸.")
        # 若choice为“taunt bear”且bear_moved为假,运行语句
        elif choice == "嘲笑熊" and not bear_moved:
            print("熊已经走了.")
            print("你现在可以看到.")
            bear_moved = True
        # 若choice为“taunt bear”且bear_moved为真,运行语句
        elif choice == "taunt bear" and bear_moved:
            # 读取dead()函数
            dead("熊生气了,咬了你的腿.")
        # 若choice为“open door”且bear_moved为真,运行语句
        elif choice == "open door" and bear_moved:
            gold_room()
        # 其他情况运行以下代码
        else:
            print("我不知是什么意思.")


# 定义cthulhu_room()函数
def cthulhu_room():
    print("你看到的邪恶.")
    print("它盯着你,你就要疯掉了.")
    print("你是被吃了头还是逃跑了?")

    choice = input(">")

    # 若choice中有“flee”,运行语句
    if "flee" in choice:
        start()
    # choice中有“head”,运行语句
    elif "head" in choice:
        dead("太好吃了!")
    # 其余情况,运行语句
    else:
        cthulhu_room()


# 定义dead(why)函数
def dead(why):
    print(why, "干的漂亮!")
    # 退出程序
    exit(0)


# 定义start()函数
def start():
    print("你在一个黑暗的房子里.")
    print("这个门你向右和左边走呢?.")
    print("你选择那边?")

    choice = input(">")

    # 若choice为“left”,运行语句
    if choice == "left":
        bear_room()
    # 若choice为“right”,运行语句
    elif choice == "right":
        cthulhu_room()
    # 若为其他情况,运行语句
    else:
        dead("你在房间里四处乱跑,直到饿死了.")

# 运行start()函数
start()

D:\软件\py36\python.exe E:\python\day15\31\xiti35.py 
你在一个黑暗的房子里.
这个门你向右和左边走呢?.
你选择那边?
>left
这里有一只熊.
熊有一串蜂蜜.
胖熊在另一扇门前.
你打算怎么赶走这只熊呢?
>open door
我不知是什么意思.
>嘲笑熊
熊已经走了.
你现在可以看到.
>open door
这个房间里全是金子你要拿走多少?
>80
你这个贪婪的人! 干的漂亮!

进程已结束,退出代码0

 

巩固练习
把这个游戏的地图画出来,把自己的路线也画出来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pR4lsFoD-1592122475333)(D:\google下载\You are in a dark room…png)]

改正你的所有错误,包括拼写错误

为你不懂的函数写注释

为游戏添加更多元素。通过怎样的方式可以简化并且扩展游戏的功能?

这个gold_room游戏使用了奇怪的方式让你键入一个数。这种方式会导致什么样的bug?你能让它比我写的程序更好吗?int()这个函数可以给你一些头绪。

不含0/1的数字被误认,导致游戏死亡结束
判断choice的值是否为整数
一个整数除以自身 = 1
一个整数减去自身 = 0
if int(choice)/int(choice) == 1
1
exit()函数
在很多类型的操作系统里,exit() 可以中断某个程序,而其中的数字参数则用来表示程序是否是碰到错误而中断。
exit(0) 则表示程序是正常退出的,退出代码是告诉解释器的(或操作系统)
exit(1) 表示发生了错误进行退出
可以用不一样的数字表示不同的错误结果。比如你可以用exit(100) 来表示另一种和 exit(2)或 exit(1) 不同的错误

原文链接:https://blog.csdn.net/weixin_45938096/article/details/106747513

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值