基于生活游戏的《部落冲突》中7级市政厅的基本效率

自从2012年构思以来,由芬兰开发商Supercell制作的如今臭名昭著的战略手机游戏《部落冲突》在玩家群中的增长非常迅速,每天已超过1亿独特玩家。 这比北京,伦敦,德里,东京,纽约,首尔,里约热内卢,莫斯科,黎明之城和布宜诺斯艾利斯的总人口还多!

投入了如此多的人力,您会认为,六年后,已经找到了完美的基础布局。 但是,您很少会找到两个相同的基础。 这是为什么? 游戏中的墙壁,建筑物和防御物有太多的布局变体,每种都有各自的优缺点,因此,如果没有计算机程序来计算基地的预期寿命,就不可能真正说出最好的组织是什么。

为了解决这个难题,并确定哪种布局是最优化的布局,我们在Processing中创建了一个程序,该程序允许用户绘制基本布局并计算其有效性。 为了节省时间和资源,该程序仅适用于7级市政厅。

程序窗口的左半部分是一个40 x 40的网格,显示了游戏区域的地形图。 在这里可以使用窗口后半部分显示的相关按键来布置各种建筑物(请参见下图)。 该程序的制定方式是根据7级市政厅的限制来限制可以布置的物品数量。 如果该数量达到其极限,程序将在黑色对话框屏幕的底部显示一条消息。

每个建筑物的数量都可以通过结构名称找到。 这样一来,建造的墙壁,塔楼,拱顶等的数量就不会出错。

此外,该程序不会让您将图块彼此堆叠,如下图所示,该图的底部出现一条消息,显示“此空间已被占用”:

每个键盘键(建筑物的类型)已分配了一种颜色,正确的尺寸和一个从下表创建的数值:

这些数字均取自《部落冲突》维基百科,可在以下网站找到:http://clashofclans.wikia.com/wiki/Town_Hall。

尽管“每秒伤害”和“命中点”等值很容易以1到5(最高行)的等级进行分类,但某些统计信息(例如“伤害类型”和“目标”)却被赋予了任意值,因为它们没有游戏本身的数字参数。 例如,能够瞄准一种类型的敌人(地面或空中)会给您1分,而能够同时破坏这两种敌人则在效果上具有优势,可以改为2分。

借助上表,为7级市政厅提供给玩家的28个防御和建筑物中的每一个都被分配了各自的值。

现在是有趣的部分开始的地方。 为了创建一个对系统进行模拟入侵者攻击的连贯系统,我们决定将代码基于Conway生活游戏的变体。 您问康威的生活游戏是什么? 游戏的环境是一个正方形的无限二维网格,可以存活(有色)或死亡(有白)。 游戏在设置阶段仅与玩家进行一次互动,因为它从那里开始玩。 在每个步骤中,全盘同时发生以下更改:

  • 少于两个活邻居的任何活细胞都会死亡(人口不足)。
  • 任何有两个或三个活邻居的活细胞都可以存活到下一代(存活)。
  • 任何具有三个以上邻居的活细胞死亡(人口过多)
  • 只要有三个活着的邻居的死细胞都可以复活(繁殖)。

之所以称为生命游戏,是因为它与现实世界中的生命周期有多相似。

但是,对于我们的应用程序,必须更改一些参数。 在我们的程序中,所有18分以下的建筑物都会死亡。 分数等于或大于18的任何建筑物都可以生存。 但是,由于该应用程序中没有此类机制,因此无法在现场创建新项目。 在我们的版本中,存在的一个问题是,在每个建筑物的预先指定的点之上,还有其他点被添加到与其他建筑物相连的结构上。 因此,分组比单个建筑物要强。 这方面增加了程序的真实感,因为《部落冲突》中的基地不仅吸收入侵者的攻击,而且还通过报复他们的防御来加强基础。 每次按下播放器键盘上的ENTER键后,都会根据建筑物的累积点是否超过18,删除新的建筑物波。

要确定基地的防御能力如何,它必须在摧毁其市政厅或被摧毁50%之前经受住最多的敌波袭击,因为这是攻击者获胜的标志。

程序启动并运行后,我们必须开始测试基本布局。 为此,我们不能仅仅开始测试存在的所有可能的基本变异,因为这将需要一个永恒的时间。 相反,我们通过浏览论坛和YouTube视频来查找3种最受欢迎​​的结构。 通过测试社区已经将哪些基础视为顶级产品,我们可以大大缩小搜索范围。 从这里开始,仅仅是一个问题,即发现这些可能性中的哪一种在其他三种可能性中更具优势。

一旦所有建筑物,数量和颜色都有意义的视觉角度使所有功能正常运行,就该对布局进行测试了。 我们花了可观的时间来解决此部分引起的问题,但我们设法通过创建各种相互堆叠的单元阵列来使其全部起作用。

测试版面:

版式#1

上面的布局幸存了2代。

版式#2

上面的布局幸存了2代。

版式#3

上面的布局幸存了1代。

该程序工作出色。 目前,它可以告诉玩家他们的基地何时死亡以及它存活了多少次迭代。 在我们经过测试的碱基的情况下,两个第一个变异体比第三个变异体更强大,因为它们存活了两代,而第三个变异体仅通过了一个。

将来可以对代码进行的改进是使它适用于所有市政厅级别,而不是仅适用于所有市政厅级别。 此外,分配给建筑物的值和破坏阈值可能会被篡改,以使模拟更加逼真。 最后,撤消命令是我们认识到的一项必要功能,但缺乏时间来添加到我们的代码中。 当前,任何放错位置的墙壁或建筑物都要求用户重新运行代码,因为如果放置在错误的位置,则无法删除结构。

由于人们对如何改进/修复我们在Processing中制作的1500行程序会有不同的想法,因此该文件已在GitHub上提供,任何人都可以从以下链接下载:https://github.com/NotMatei/Clash部族计算器

(要使用该程序,您必须安装Processing 3)

还通过以下链接制作了演示该程序如何工作的视频:https://youtu.be/c0J9syO0w-4

虽然将代码应用于较小的项目很有趣,例如计算《部落冲突》的基本预期寿命,但该算法可用于更重要的应用程序。 由于增长的某些方面可能对文明的某些部分产生影响,因此,Conway的生活游戏中更复杂的变化可以应用于高级文明构建模拟等项目。 例如,机器人技术的进步将对军事和经济产生有益的影响,但不利于与其他国家的政治稳定(仅举一个例子)。

总之,为该项目创建的程序可以充分满足其目的,但可以针对其最初的想法(《部落冲突》基础计算器)和更重要的目的(文明增长模拟)进行扩展。