Python小游戏,密室逃脱1.0

Python代码实现密室逃脱游戏

求赞 求关注

源代码在最底下        本文将依次按照程序中的三个不同结局的顺序来写。     后续会更新更多房间和结局

如果你不想让一片好的文章被埋没,那就把他免费共享出来。

正文开始

在写这些代码之前我们要导入这个模块

import time

  1. 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)
  1. time.sleep(1)

    time.sleep(n):让程序暂停执行 n 秒n 可以是整数或浮点数,例如 0.5 表示暂停 0.5 秒),使用场景:在文本冒险游戏中,通过 time.sleep(1) 在打印剧情描述、选项列表后添加 1秒间隔,避免所有文字瞬间刷屏,让玩家有时间逐段阅读,提升游戏沉浸感,如果没有 time.sleep(1),代码会瞬间输出所有内容(例如房间描述、选项列表会一次性显示),玩家可能来不及阅读,通过添加短暂停顿,实现了文字逐段显示的效果,模拟了类似对话或剧情的自然节奏。

  2. choice = input()

    功能:通过 Python 内置的 input() 函数获取玩家输入的内容(玩家通过键盘输入的文字),并将输入内容存储到变量 choice 中。细节input() 会暂停程序运行,等待玩家输入(例如输入 1 或 2),按回车键后继续执行。输入的内容会被当作字符串处理(即使输入数字,变量 choice 存储的也是字符串格式,如输入 1 会得到 "1")。

  3. if choice == "1":

    功能:条件判断语句,检查玩家输入的 choice 是否等于字符串 "1",作用:在你的游戏场景中,这对应玩家选择了 “1躲到柜子里” 这个选项,如果条件成立(玩家确实输入了 1),就会执行后续缩进的代码块(例如 print("你躲到了柜子里") 等剧情描述)。

  4. exit(0)

    核心功能:通过 Python 内置的 exit() 函数终止当前程序的执行,参数 0 的含义:表示程序正常退出(无错误),这是操作系统约定的“成功结束”状态码(非 0 通常表示异常退出,如错误终止),当玩家选择“攻击他”并成功逃脱后,游戏剧情已达成结局(逃出生天),此时通过 exit(0) 终止程序,避免玩家继续进行无效操作,这样就可以使游戏逻辑的闭环。

  5. 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
  1. 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 
  1. bag.append("钥匙")

    语法解析

    • bag 是之前定义的空列表(bag = []),代表玩家的“背包”。
    • .append() 是 Python 列表的内置方法,用于在列表末尾添加新元素
    • "钥匙" 是要添加的元素(字符串类型,表示“钥匙”这个物品)。
    在游戏中的实际意义:

    当玩家选择“拿起钥匙”(输入 1)时,这行代码会将 "钥匙" 存入 bag 列表(此时 bag 会从空列表变为 ["钥匙"])。后续游戏逻辑会通过 if "钥匙" in bag 判断玩家是否持有钥匙,从而决定能否打开铁门(例如“你用钥匙打开了铁门”的剧情分支)。

  2. 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)  # 结果描述后间隔        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值