language-agnostic - 在游戏中放置防御结构

标签 language-agnostic artificial-intelligence algorithm

我正在为游戏开发 AI 机器人 Defcon .游戏中有城市,人口各不相同,防御结构范围有限。我正在尝试制定一个很好的算法来放置防御塔。

  • 人口较多的城市更需要保卫
  • 失去防御塔是一个打击,因此塔应该合理地靠近放置
  • 塔和城市只能放在陆地上

因此,根据这三个规则,我们看到最好的放置方式是将塔放置在人口最多的区域周围的环中(尽管我不希望算法只是盲目地在人口最多的区域周围放置一个环)人口,有时可能会有 2 组城市相距很远,在这种情况下,算法应该制作 2 个圆圈,每个圆圈是我塔总数的一半)。

我想知道可以使用哪种算法来确定塔的位置?

最佳答案

我会定义一个函数来确定放置在该位置的塔的值。然后在该函数中搜索最大值并在那里放置一座塔。

该函数的草图可能如下所示:

if water return 0

popsum = sum for all city over (population/distance) // it's better to have towers close by

towersum = - sum for all existing towers (1/distance) // you want you towers spread somewhat evenly

return popsum + towersum*f // f adjusts the relative importance of spreading towers equally and protecting the population centers with many towers 

应该给出一个合理的算法作为起点。为了改进,您可以将 1/distance 函数更改为不同的值,以获得更快或更慢的下降。

关于language-agnostic - 在游戏中放置防御结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317743/

相关文章:

language-agnostic - 原子指令

algorithm - 如何创建允许语法错误的 AST 解析器?

algorithm - 判断文本是否有意义的字符串搜索算法

算法设计手册解法错误?

javascript - 在javascript中按关系对数组进行排序

language-agnostic - Allen Holub 写了 "You should never use get/set functions",他是正确的吗?

language-agnostic - 在某些条件下,密码散列是内射的吗?

c# - 如何让敌人在 XNA 中全屏跟随玩家?

algorithm - 蒙特卡洛树搜索或其他随机纸牌游戏算法?

regex - 计算机是否可以通过用户提供的示例将 "learn"转换为正则表达式?