首页/文章/ 详情

Python制作复古地牢文字冒险游戏

4年前浏览8583


巨洞冒险(Colossal Cave Adventure),又名 ADVENT、Clossal Cave 或 Adventure,是八十年代初到九十年代末最受欢迎的基于文字的冒险游戏。这款游戏还作为史上第一款“互动小说(interactive fiction)”类游戏而闻名。在 1976 年,一个叫 Will Crowther 的程序员开发了这款游戏的一个早期版本,之后另一位叫 Don Woods 的程序员改进了这款游戏,为它添加了许多新元素,包括计分系统以及更多的幻想角色和场景。

今天的技术发展已经远远超越了那个时代,但我仍然对那个年代的游戏充满好奇。今天我就来用Python游戏实现一个复古风格的地牢文字冒险游戏。

游戏规则设计

游戏主要场景是迷宫,四周的#是墙壁,无法穿过。

M表示怪物,G表示哥布林,H表示玩家

遭遇怪物通常有几率对你造成一定的伤害,并且遭遇怪物后怪物并不会消失,下一次再来到这个格子时还会再遭遇怪物

哥布林是友善的,遭遇不同类型的哥布林有几率给你不同的增幅,加血,加小苹果等,哥布林遭遇后会消失

移动一格需要消耗1点血量

血量归零则游戏失败

游戏的核心就是:玩家需要合理规划路线,在血量归零前遭遇所有的怪物即可获得游戏胜利

胜利分数就是通关时剩余的小苹果数量,小苹果数量越多胜利分数越高。排行榜按照胜利分数排名。

地牢生成

地牢的生成算法是一个递归算法,算法过程有点类似分割房间。

首先,创造一块边长为s的正方形场地,随机一对x和y作为切割点,x为横向切割点,y为纵向切割点,通过把x行和y列的值全部设置为1(墙)把这块场地切割成4份

两条切割线构成了4面墙(可以看作是从交点延展开的四面墙),在其中三面墙上打个洞(置0表示空)使其整体连通,对这四个小房间进行递归调用,直到无法切割为止。


用图来解释,黑色部分的墙是第一次切割,把整个场地切割成四个房间,然后留三个门。绿色则是第二次递归切割,一样是切割成4个房间然后随机留三个门。循环往复,直到无法分割为止。

实现怪物和哥布林

因为怪物之间有共同点,哥布林之间也有共同点。所以可以很自然的使用抽象类去定义他们。

按照游戏设定,我们有富有的哥布林,医生哥布林和游戏哥布林。

他们都是哥布林,都有类似的特性,那就是需要初始化概率参数(init)和发动的能力(ability)。

所以我们可以用一个抽象类去规范化具体的哥布林子类。


如下图所示,这是一个富有的哥布林的类,它继承自Goblin,即我们上面的抽象类


这里我们重写了init和ability方法,使其具有特定的功能。

再看一下其他的哥布林也是类似的。


其他怪物也是用类似的方法去定义。

游戏控制器

游戏控制器控制着整个游戏,负责调用算法生成迷宫,生成怪物,把英雄放进地牢,显示文字提示等,也是游戏的主循环。

效果展示

最后,欢迎大家通过微信公众号联系我们。

微信公众号:320科技工作室。


智慧+python系统仿真代码&命令游戏
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-07-15
最近编辑:4年前
320科技工作室
硕士 | 结构工程师 lammps/ms/vasp/
获赞 223粉丝 346文章 306课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈