1. 画一个这个游戏的流程图,并指出它是如何运转的。
?
?3. 为你不理解的函数写上注释。 4. 为游戏增加一些功能,同时使代码更加简化。
这是原代码未经修改
from sys import exit
def gold_room():
print("这个房间里堆满了金子。你要拿多少?")
choice = input("> ")
if "0" in choice or "1" in choice:
how_much = int(choice)
else:
dead("老兄,学打字吧。")
if how_much < 50:
print("不错,你不贪心,你赢了!")
exit(0)
else:
dead("你贪婪的混蛋!")
def bear_room():
print("这里有一只熊。")
print("熊有一堆蜂蜜。")
print("胖熊在另一扇门前。")
print("你打算怎么移动这只熊?")
bear_moved = False
while True:
choice = input("> ")
if choice == "拿走蜂蜜":
dead("熊看着你,然后打了你一巴掌")
elif choice == "嘲讽熊" and not bear_moved:
print("熊已经从门口走了.")
print("你现在可以走了。")
bear_moved = True
elif choice == "嘲讽熊" and bear_moved:
dead("熊生气了,咬了你的腿。")
elif choice == "开门" and bear_moved:
gold_room()
else:
print("我不知道那是什么意思。")
def cthulhu_room():
print("这里你看到了伟大的恶魔克苏鲁")
print("他,不管是什么,只要盯着你,你就会发疯。")
print("你是逃命呢,还是吃自己的头呢?")
choice = input("> ")
if "逃离" in choice:
start()
elif "头" in choice:
dead("嗯,那很好吃!")
else:
cthulhu_room()
def dead(why):
print(why, "好运")
exit(0)
def start():
print("你在一个黑暗的房间里。")
print("你的左右各有一扇门。")
print("你选哪一个?")
choice = input("> ")
if choice == "左":
bear_room()
elif choice == "右":
cthulhu_room()
else:
dead("你在房间里走来走去,直到饿死。")
start()
运行结果?
?
5. 这个 gold_room 让你输入数字的方式有点奇怪。这样做有哪些 bug ?你能改善我的代码吗?可以 查查看 int() 的相关知识。
如果输入的数字不是0或者1,就会“ 提示老兄,学打字吧。”直接结束
改善
使用isdigit()来判断输入的是否为正整数代码修改如下
from sys import exit
def gold_room():
print("这个房间里堆满了金子。你要拿多少?")
choice = input("> ")
if choice.isdigit():
how_much = int(choice)
if how_much < 50:
print("不错,你不贪心,你赢了!")
exit(0)
else:
dead("你贪婪的混蛋!")
else:
dead("老兄,学打字吧。")
def dead(why):
print(why, "好运")
exit(0)
gold_room()
输出为
?
|