魔塔小游戏中的AI(一)

魔塔,是一个策略类的固定数值的RPG小游戏,难度不低,对智商是一次艰巨的考验。

下面对魔塔游戏规则进行一些简单的介绍。

  • 勇士拥有生命值、攻击、防御、魔防、金币、经验等多种属性。
  • 地图中拥有若干怪物、门,以及宝物。
  • 勇士撞上怪物后将发生战斗,战斗将造成一定数值的生命值伤害;战斗结束后,可以获取一定的金币和经验,可在商店换取属性的增加。
  • 勇士可以拾取地图上的各种道具,例如血瓶、宝石或钥匙等。血瓶可以增加生命值,宝石可以增加勇士的攻防,等等。
  • 不同颜色的门(常常只有黄蓝红三种)需要对应的钥匙方可开启,钥匙为一次性物品。
  • 游戏目标则是寻找到一条合适的路线,并通过不断提升勇士的能力,最终战胜整座塔的Boss。

常见的最经典魔塔有:24层魔塔50层魔塔(TSW,世界上第一座魔塔)新新魔塔。以上三部魔塔并称为“三原塔”。除此以外,大量魔塔爱好者也搭建了自己的魔塔,更多魔塔小游戏可以在百度贴吧魔塔吧进行搜寻。

 

如果从来没玩过魔塔游戏的话,建议先去玩玩上述的几个经典魔塔。

 

我们的目的是:写一个AI,来解决一般向的魔塔类问题。也就是,能否写出这样的一个算法,对于一个魔塔,找到最合适的线路?

我们暂时不考虑如下几种情况:

  • 怪物拥有吸血、模仿、净化、仇恨、自爆等属性。在整个过程中,确保不会出现“留能力”的情况,即能拿到宝物第一时间拿到宝物。
  • 怪物拥有阻激夹域(阻击、激光、夹击、领域)等属性。这些属性的存在会导致地图的结构发生改变,使得复杂度大大增加。同理,我们不考虑路障(经过扣血)的存在。
  • 有关特殊道具,破墙镐和炸弹勉强可以存在,但是其他的特殊道具比如中心对称飞行器(完全改变地图的拓扑结构)、上楼器/下楼器、幸运金币(改变打怪顺序)等则统一不考虑。
  • 等等…

我们先考虑最简单的图:单层塔。也就是只有一层的魔塔,一般为13*13的地图;不涉及金币和经验值,不能在商店购买能力;不涉及特殊道具,如破墙镐、炸弹等等;怪物可以拥有部分特殊属性,如先攻、魔攻、坚固、2连击等。

上图的单层塔较为简单,当然也有更为复杂的单层塔,比如下图,情况就复杂多了:

从下一篇博客开始,我们将对单层塔的算法进行初步分析。

 

大家可以关注我的开源项目https://github.com/ckcz123/magic-tower-AI/,star或fork一下,感谢支持~

如果您有什么意见建议,或者比较好的想法的话,欢迎邮件至ckcz123@126.comckcz12345@gmail.com与我联系,也可以在魔塔吧官方交流QQ群里搜索“小艾”联系到我。期待对于AI,有与您的进一步交流~