我正在为游戏开发 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/