求赞 求关注
源代码在最底下 本文将依次按照程序中的三个不同结局的顺序来写。 后续会更新更多房间和结局
如果你不想让一片好的文章被埋没,那就把他免费共享出来。
正文开始
在写这些代码之前我们要导入这个模块
import time
-
time模块
time 模块是Python内置的标准库,提供了与时间相关的各种操作,如获取当前时间、时间格式化、程序暂停等。它不依赖第三方库,导入即可使用(代码中通过
import time来导入)。
接下来是第一个结局的代码
print("醒来时发现自己在一个小房间里,四周墙壁是灰色的。房间里有一张木桌、一个铁柜,以及一扇紧挨着的门。")
time.sleep(1) # 房间描述后间隔
bag = []
while True:
while True:
print("你选择")
time.sleep(1)
print("1.尝试打开铁门")
time.sleep(1)
print("2.查看铁柜")
time.sleep(1)
print("3.查看木桌")
time.sleep(1) # 选项列表后间隔
choice = input() # 单次获取输入
if choice == "1":
print("你尝试打开铁门,但是它被锁死了。")
time.sleep(1) # 结果描述后间隔
print("你发出了声音。")
time.sleep(1)
print("门外出现了脚步声")
time.sleep(1)
print("你选择")
time.sleep(1)
print("1躲到柜子里")
time.sleep(1)
print("2不躲")
time.sleep(1)
choice = input()
if choice == "1":
print("你躲到了柜子里")
time.sleep(1)
print("有人进来了")
time.sleep(1)
print("你选择")
time.sleep(1)
print("1.继续躲")
time.sleep(1)
print("2.攻击他")
time.sleep(1)
choice = input()
if choice == "1":
print("你选择了继续躲")
time.sleep(1)
print("他走了")
time.sleep(1)
print("你从柜子里出来了")
continue
elif choice == "2":
print("你选择了攻击")
time.sleep(1)
print("你把他给打晕过去了")
time.sleep(1)
print("他没关门")
time.sleep(1)
print("你逃出来了")
exit(0)
-
time.sleep(1)
time.sleep(n):让程序暂停执行n秒(n可以是整数或浮点数,例如0.5表示暂停 0.5 秒),使用场景:在文本冒险游戏中,通过time.sleep(1)在打印剧情描述、选项列表后添加 1秒间隔,避免所有文字瞬间刷屏,让玩家有时间逐段阅读,提升游戏沉浸感,如果没有time.sleep(1),代码会瞬间输出所有内容(例如房间描述、选项列表会一次性显示),玩家可能来不及阅读,通过添加短暂停顿,实现了文字逐段显示的效果,模拟了类似对话或剧情的自然节奏。 -
choice = input()
功能:通过 Python 内置的
input()函数获取玩家输入的内容(玩家通过键盘输入的文字),并将输入内容存储到变量choice中。细节:input()会暂停程序运行,等待玩家输入(例如输入1或2),按回车键后继续执行。输入的内容会被当作字符串处理(即使输入数字,变量choice存储的也是字符串格式,如输入1会得到"1")。 -
if choice == "1":
功能:条件判断语句,检查玩家输入的
choice是否等于字符串"1",作用:在你的游戏场景中,这对应玩家选择了 “1躲到柜子里” 这个选项,如果条件成立(玩家确实输入了1),就会执行后续缩进的代码块(例如print("你躲到了柜子里")等剧情描述)。 -
exit(0)
核心功能:通过 Python 内置的
exit()函数终止当前程序的执行,参数0的含义:表示程序正常退出(无错误),这是操作系统约定的“成功结束”状态码(非 0 通常表示异常退出,如错误终止),当玩家选择“攻击他”并成功逃脱后,游戏剧情已达成结局(逃出生天),此时通过exit(0)终止程序,避免玩家继续进行无效操作,这样就可以使游戏逻辑的闭环。 -
bag = []
bag是变量名(可理解为“背包”),用于指代这个存储物品的容器,[]表示创建一个空列表(Python 中的列表是有序、可修改的集合,适合存储多个元素),=是赋值运算符,将空列表赋值给变量bag,当玩家选择“拿起钥匙”时,代码通过bag.append("钥匙")将字符串"钥匙"添加到bag列表中(此时bag变为["钥匙"])。在游戏中的实际作用:在文本冒险游戏中,bag列表用于跟踪玩家收集的关键物品。例如:当玩家选择“拿起钥匙”时,代码通过bag.append("钥匙")将字符串"钥匙"添加到bag列表中(此时bag变为["钥匙"])。后续游戏逻辑会通过if "钥匙" in bag判断玩家是否持有钥匙,从而决定能否打开铁门(如“你用钥匙打开了铁门”的剧情)。
这个结局是你在没有钥匙的情况下去开门而产生声音把“他”给吵过来而你要在柜子里躲一会儿,然后出来打倒他再从他没关的门出来。
接下来是第二个结局的代码
elif choice == "2":
print("你选择了不躲")
time.sleep(1)
print("你被发现了!")
time.sleep(1)
print("YOU DID")
break
-
break
关键作用:终止的循环它终止的是外层的
while True:循环(即代码中第 5 行的while True:)这个循环的作用是反复显示“尝试打开铁门/查看铁柜/查看木桌”的初始选项列表,游戏逻辑影响:当玩家选择“不躲”并被发现后,剧情走向失败结局(打印“YOU DID”),此时break会跳出循环,不再继续显示初始选项,程序会从循环外部继续执行后续代码,(当然后面的剧情我还没更新,以后可以去我的个人主页找一下。)
这个结局是因为你不躲起来被“他”给发现了,然后被他给kill了。
第三个结局的代码
while True:
print("你选择")
time.sleep(1)
print("1.尝试打开铁门")
time.sleep(1)
print("2.查看铁柜")
time.sleep(1)
print("3.查看木桌")
choice = input()
elif choice == "3":
print("你选择了查看木桌,上面有一把钥匙。")
time.sleep(1) # 结果描述后间隔
break
print("你选择")
time.sleep(1)
print("1.拿起钥匙"
time.sleep(1)
print("2.不拿钥匙")
time.sleep(1) # 选项列表后间隔
choice = input() # 单次获取输入
if choice == "1":
bag.append("钥匙")
print("你拿起了钥匙")
time.sleep(1) # 结果描述后间隔
print("你选择")
time.sleep(1)
print("1.尝试打开铁门")
if choice == "1":
if "钥匙" in bag:
print("你用钥匙打开了铁门")
time.sleep(1)
print("你逃了出去")
time.sleep(1) # 结果描述后间隔
break
-
bag.append("钥匙")
语法解析:
bag是之前定义的空列表(bag = []),代表玩家的“背包”。.append()是 Python 列表的内置方法,用于在列表末尾添加新元素。"钥匙"是要添加的元素(字符串类型,表示“钥匙”这个物品)。
在游戏中的实际意义:
当玩家选择“拿起钥匙”(输入
1)时,这行代码会将"钥匙"存入bag列表(此时bag会从空列表变为["钥匙"])。后续游戏逻辑会通过if "钥匙" in bag判断玩家是否持有钥匙,从而决定能否打开铁门(例如“你用钥匙打开了铁门”的剧情分支)。 -
if "钥匙" in bag:
核心功能:通过判断
bag列表中是否存在"钥匙",决定玩家能否打开铁门。这行代码是物品系统与剧情推进的桥梁,通过检查玩家是否收集关键物品(钥匙),控制游戏流程分支,确保玩家只有满足条件(持有钥匙)才能触发“逃出生天”的结局。
- 如果存在(
"钥匙" in bag为True):执行“开门逃生”剧情,游戏成功结束。 - 如果不存在(
"钥匙" in bag为False):提示“没有钥匙”,玩家需要返回寻找钥匙。
- 如果存在(
这个结局是正常的通关流程,你要先到桌子上去拿上钥匙,然后呢再到门口去开门儿,就可以打开门进行逃生。
以上就是整个程序的代码解析,下面是整篇文章的源代码。
import time
print("醒来时发现自己在一个小房间里,四周墙壁是灰色的。房间里有一张木桌、一个铁柜,以及一扇紧挨着的门。")
time.sleep(1) # 房间描述后间隔
bag = []
while True:
while True:
print("你选择")
time.sleep(1)
print("1.尝试打开铁门")
time.sleep(1)
print("2.查看铁柜")
time.sleep(1)
print("3.查看木桌")
time.sleep(1) # 选项列表后间隔
choice = input() # 单次获取输入
if choice == "1":
print("你尝试打开铁门,但是它被锁死了。")
time.sleep(1) # 结果描述后间隔
print("你发出了声音。")
time.sleep(1)
print("门外出现了脚步声")
time.sleep(1)
print("你选择")
time.sleep(1)
print("1躲到柜子里")
time.sleep(1)
print("2不躲")
time.sleep(1)
choice = input()
if choice == "1":
print("你躲到了柜子里")
time.sleep(1)
print("有人进来了")
time.sleep(1)
print("你选择")
time.sleep(1)
print("1.继续躲")
time.sleep(1)
print("2.攻击他")
time.sleep(1)
choice = input()
if choice == "1":
print("你选择了继续躲")
time.sleep(1)
print("他走了")
time.sleep(1)
print("你从柜子里出来了")
continue
elif choice == "2":
print("你选择了攻击")
time.sleep(1)
print("你把他给打晕过去了")
time.sleep(1)
print("他没关门")
time.sleep(1)
print("你逃出来了")
exit(0)
elif choice == "2":
print("你选择了不躲")
time.sleep(1)
print("你被发现了!")
time.sleep(1)
print("YOU DID")
break
elif choice == "2":
print("你选择了查看铁柜,但是它是空的。")
time.sleep(1) # 结果描述后间隔
elif choice == "3":
print("你选择了查看木桌,上面有一把钥匙。")
time.sleep(1) # 结果描述后间隔
break
print("你选择")
time.sleep(1)
print("1.拿起钥匙")
time.sleep(1)
print("2.不拿钥匙")
time.sleep(1) # 选项列表后间隔
choice = input() # 单次获取输入
if choice == "1":
bag.append("钥匙")
print("你拿起了钥匙")
time.sleep(1) # 结果描述后间隔
elif choice == "2":
print("你选择了不拿钥匙")
time.sleep(1) # 结果描述后间隔
print("你选择")
time.sleep(1)
print("1.尝试打开铁门")
time.sleep(1)
print("2.查看铁柜")
time.sleep(1)
print("3.查看木桌")
time.sleep(1) # 选项列表后间隔
choice = input() # 单次获取输入
if choice == "1":
if "钥匙" in bag:
print("你用钥匙打开了铁门")
time.sleep(1)
print("你逃了出去")
time.sleep(1) # 结果描述后间隔
break
else:
print("你没有钥匙,不能打开铁门")
time.sleep(1) # 结果描述后间隔
elif choice == "2": # 修正为elif避免重复判断
print("你选择了查看铁柜,但是它是空的。")
time.sleep(1)
elif choice == "3": # 修正为elif避免重复判断
if "钥匙" in bag:
print("你选择了查看木桌,上面没有东西了。")
time.sleep(1) # 结果描述后间隔
else:
print("你选择了查看木桌,上面有一把钥匙。")
time.sleep(1)
print("你选择")
time.sleep(1)
print("1.拿起钥匙")
time.sleep(1)
print("2.不拿钥匙")
time.sleep(1) # 选项列表后间隔
key_choice = input() # 单次获取输入
if key_choice == "1": # 修正为字符串判断
bag.append("钥匙")
print("你拿起了钥匙")
time.sleep(1) # 结果描述后间隔
elif key_choice == "2": # 修正为字符串判断
print("你选择了不拿钥匙")
time.sleep(1) # 结果描述后间隔
Python代码实现密室逃脱游戏
1317

被折叠的 条评论
为什么被折叠?



