AI for Magic Tower (Part I)

Sorry, this entry is only available in 中文. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

魔塔,是一个策略类的固定数值的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,有与您的进一步交流~