import time
import random
def print_delay(text, delay=0.04):
"""逐字打印文本,增强游戏沉浸感"""
for char in text:
print(char, end='', flush=True)
time.sleep(delay)
print()
def game_start():
"""游戏开场"""
print_delay("\n=== 古堡探险 ===")
print_delay("\n夜色深沉,你站在一座古老城堡的大门前。")
print_delay("这座城堡据说已经废弃了数百年,但今晚却隐约有灯光闪烁。")
print_delay("作为一名探险爱好者,你无法抗拒这种神秘的诱惑。")
print_delay("城堡大门虚掩着,仿佛在邀请你进入...")
choice = input("\n你要进入城堡吗?(是/否): ").lower()
if choice == "是":
entrance_hall()
else:
print_delay("\n你决定放弃探险,转身离开了这座神秘的古堡。")
print_delay("也许明天白天再来会更安全...")
game_end("你选择了放弃,探险就此结束。")
def entrance_hall():
"""城堡大厅场景"""
print_delay("\n你推开沉重的木门,进入了城堡的大厅。")
print_delay("大厅高大空旷,灰尘覆盖的地板上留有模糊的脚印。")
print_delay("四周墙壁上挂着褪色的肖像画,画中人物的眼睛似乎在跟随你的移动。")
print_delay("大厅有三个方向可以前进:左侧有一道楼梯,右侧是一扇小门,前方是通往内厅的拱门。")
while True:
choice = input("\n你要往哪个方向走?(左/右/前): ").lower()
if choice == "左":
staircase()
break
elif choice == "右":
small_room()
break
elif choice == "前":
inner_hall()
break
else:
print_delay("请输入'左'、'右'或'前'来选择方向。")
def staircase():
"""楼梯场景"""
print_delay("\n你走向左侧的楼梯,楼梯是石制的,有些台阶已经松动。")
print_delay("你小心翼翼地向上走,楼梯尽头是一条长长的走廊。")
print_delay("走廊两侧有好几扇门,其中一扇半开着,里面似乎有声音。")
choice = input("\n你要进入那扇半开的门吗?(是/否): ").lower()
if choice == "是":
print_delay("\n你轻轻推开门,里面是一间书房。")
print_delay("一个穿着古装的老人正坐在书桌前看书,听到动静抬起头来。")
print_delay("你吓了一跳,但老人却平静地说:'终于有人来了'。")
# 随机事件:老人的态度
if random.random() < 0.6:
print_delay("\n老人告诉你他是城堡的守护者,正在等待能够解开城堡秘密的人。")
print_delay("他交给你一把金钥匙,说可以打开城堡中任何一扇门。")
print_delay("'但要小心地下室的秘密,'他警告道,'不是所有人都能承受真相。'")
print_delay("当你道谢后转身,发现老人已经消失了。")
print_delay("你拿着金钥匙,决定前往地下室一探究竟。")
basement(True)
else:
print_delay("\n老人突然露出诡异的笑容,房间里的灯光开始闪烁。")
print_delay("'又一个受害者,'他说道,身体逐渐变得透明。")
print_delay("你感到一阵寒意,转身想跑,却发现门已经消失了。")
print_delay("房间开始旋转,你失去了意识...")
game_end("你被古堡的幽灵困住,再也没有醒来。")
else:
print_delay("\n你决定不进入那扇门,继续沿着走廊前进。")
print_delay("走廊尽头是一间卧室,里面有一张古老的床和一个衣柜。")
print_delay("你打开衣柜,发现里面只有几件破旧的衣服。")
print_delay("突然,衣柜门自己关上了,房间里一片漆黑...")
game_end("你被困在衣柜里,再也没能出来。")
def small_room():
"""右侧小屋场景"""
print_delay("\n你走向右侧的小门,门是木制的,上面有一个铜制门环。")
print_delay("你推开门,发现这是一间厨房,里面布满了蜘蛛网。")
print_delay("角落里有一个壁炉,旁边放着一把生锈的斧头。")
print_delay("桌子上有一个看起来还能使用的灯笼和一瓶液体。")
choice = input("\n你要拿起什么物品?(斧头/灯笼/液体/什么都不拿): ").lower()
if choice == "斧头":
print_delay("\n你拿起斧头,感觉很沉重但很结实。")
print_delay("你离开厨房,回到大厅,决定前往内厅。")
inner_hall(weapon="斧头")
elif choice == "灯笼":
print_delay("\n你拿起灯笼,发现里面还有蜡烛,并且有一盒火柴。")
print_delay("你点亮灯笼,温暖的光芒驱散了周围的黑暗。")
print_delay("你离开厨房,回到大厅,决定前往内厅。")
inner_hall(tool="灯笼")
elif choice == "液体":
print_delay("\n你拿起瓶子,标签已经模糊不清,只能看到'谨慎使用'几个字。")
print_delay("你打开瓶盖,一股刺鼻的气味传来,像是某种药水。")
print_delay("你离开厨房,回到大厅,决定前往内厅。")
inner_hall(item="液体")
else:
print_delay("\n你什么都没拿,离开了厨房,回到大厅,决定前往内厅。")
inner_hall()
def inner_hall():
"""内厅场景"""
print_delay("\n你穿过拱门,进入了城堡的内厅。")
print_delay("内厅比大厅小一些,但装饰更加华丽,显然是招待贵宾的地方。")
print_delay("墙上挂着一面巨大的镜子,镜子前有一个华丽的地毯。")
print_delay("地毯下方似乎有一个 trapdoor(活板门)的痕迹。")
choice = input("\n你要检查什么?(镜子/地毯/离开): ").lower()
if choice == "镜子":
print_delay("\n你走向镜子,发现这面镜子很奇怪,你的倒影似乎有些延迟。")
print_delay("你伸出手触摸镜面,手指竟然穿了过去!")
# 随机事件:镜子的秘密
if random.random() < 0.4:
print_delay("\n你犹豫了一下,还是走进了镜子。")
print_delay("里面是一个与城堡完全相同但颜色相反的世界。")
print_delay("你看到另一个自己正惊讶地看着你。")
print_delay("突然,另一个自己向你扑来,你感到意识在消失...")
game_end("你被镜子中的自己取代了,永远困在了镜中世界。")
else:
print_delay("\n你吓得收回手,决定不进入镜子。")
print_delay("你转身走向地毯,决定检查那个活板门。")
check_trapdoor()
elif choice == "地毯":
check_trapdoor()
elif choice == "离开":
print_delay("\n你决定离开内厅,回到入口大厅。")
entrance_hall()
else:
print_delay("请输入'镜子'、'地毯'或'离开'来选择。")
inner_hall()
def check_trapdoor(has_key=False):
"""检查活板门"""
print_delay("\n你移开地毯,发现一个木制的活板门,上面有一个锁。")
if has_key:
print_delay("你想起手中的金钥匙,尝试着插入锁孔,竟然完美契合!")
print_delay("你打开活板门,下面是通往地下室的阶梯。")
basement()
else:
print_delay("活板门被锁住了,你需要一把钥匙才能打开。")
choice = input("\n你要寻找钥匙吗?(是/否): ").lower()
if choice == "是":
print_delay("\n你在房间里四处寻找,终于在一个装饰花瓶中找到了一把生锈的钥匙。")
print_delay("你用钥匙尝试打开活板门,锁被打开了!")
print_delay("你打开活板门,下面是通往地下室的阶梯。")
basement()
else:
print_delay("\n你决定不寻找钥匙,回到了入口大厅。")
entrance_hall()
def basement(has_gold_key=False):
"""地下室场景"""
print_delay("\n你沿着阶梯向下走,地下室阴暗潮湿,空气中弥漫着霉味。")
print_delay("地下室中央有一个石制祭坛,上面放着一个闪闪发光的盒子。")
print_delay("突然,你听到身后传来低沉的咆哮声!")
print_delay("一个巨大的怪物挡住了你的退路,它有着锋利的爪子和獠牙。")
# 根据玩家携带的物品决定不同的结果
if 'weapon' in locals() and weapon == "斧头":
print_delay("\n你想起手中的斧头,毫不犹豫地挥舞着向怪物冲去!")
print_delay("经过一番激烈的搏斗,你成功击退了怪物!")
open_box()
elif 'tool' in locals() and tool == "灯笼":
print_delay("\n你举起亮着的灯笼,怪物似乎害怕光线,向后退了几步。")
print_delay("你趁机绕过怪物,跑到祭坛前。")
open_box()
elif 'item' in locals() and item == "液体":
print_delay("\n你想起手中的神秘液体,情急之下泼向了怪物。")
print_delay("液体接触到怪物,发出滋滋的声音,怪物痛苦地嘶吼着后退。")
print_delay("你趁机跑到祭坛前。")
open_box()
elif has_gold_key:
print_delay("\n你想起老人的话,举起手中的金钥匙。")
print_delay("怪物看到金钥匙,竟然跪了下来,似乎在敬畏这把钥匙。")
print_delay("你安全地走到祭坛前。")
open_box(True)
else:
print_delay("\n你没有任何可以对抗怪物的东西,只能束手就擒...")
game_end("你成为了怪物的晚餐,探险就此结束。")
def open_box(special=False):
"""打开祭坛上的盒子"""
print_delay("\n你来到祭坛前,看着那个闪闪发光的盒子。")
if special:
print_delay("你用金钥匙打开盒子,里面没有金银财宝,而是一卷古老的羊皮纸。")
print_delay("羊皮纸上记载着城堡的秘密:这里曾是一位伟大巫师的住所。")
print_delay("巫师预言你会来,并留下了他的魔法书作为礼物。")
print_delay("你拿起魔法书,突然感到一股力量涌入体内。")
print_delay("怪物这时走上前来,原来它是巫师的守护者,现在认你为主。")
game_win("你成为了城堡的新主人,获得了强大的魔法力量!")
else:
print_delay("你打开盒子,发现里面装满了金币和珠宝,价值连城!")
print_delay("你高兴地把宝物装进背包,准备离开。")
choice = input("\n你要如何处理这个发现?(带走/上报/留下): ").lower()
if choice == "带走":
print_delay("\n你带着宝物悄悄离开了城堡,从此过上了富裕的生活。")
print_delay("但你从未告诉任何人城堡的秘密。")
game_win("你获得了巨额财富,成功完成了探险!")
elif choice == "上报":
print_delay("\n你联系了当地政府,报告了这一发现。")
print_delay("城堡被列为历史遗迹,你因发现有功获得了一笔奖金。")
print_delay("你的名字被记录在历史书中,成为了著名的探险家。")
game_win("你为历史研究做出了贡献,赢得了荣誉!")
else:
print_delay("\n你决定将宝物留在原地,认为它们属于这座城堡。")
print_delay("你只带走了一小块金币作为纪念。")
print_delay("离开城堡时,你回头望去,仿佛看到窗口有一个人影在向你挥手。")
game_win("你展现了高尚的品格,获得了城堡的祝福!")
def game_end(reason):
"""游戏结束"""
print_delay(f"\n=== 探险结束 ===")
print_delay(reason)
play_again()
def game_win(reason):
"""游戏胜利"""
print_delay(f"\n=== 探险成功 ===")
print_delay(reason)
play_again()
def play_again():
"""询问是否再玩一次"""
choice = input("\n想再进行一次古堡探险吗?(是/否): ").lower()
if choice == "是":
game_start()
else:
print_delay("\n感谢游玩!希望你喜欢这次古堡探险!")
if __name__ == "__main__":
game_start()