岛屿战略游戏的基础距离



我正在用Java创建一款策略游戏,我现在正在为此编写地图编辑器。在游戏开始前,玩家需要制作一张包含许多岛屿和每个岛屿上的资源的地图。保存地图后,选择玩家的数量。每个选手都有一个基地,这些基地必须位于彼此之间最远的地方。

那么,假设我加载一张有5个岛屿的地图,游戏开始时有2名玩家——每个玩家必须有一个岛屿。这些岛屿之间的距离必须是最大的,所以应该是这样的:玩家1的岛屿,中立的岛屿,中立的岛屿,中立的岛屿,玩家2的岛屿。

我不知道我的算法应该是什么

这个问题似乎相当于这个问题:https://cs.stackexchange.com/questions/22767/choosing-a-subset-to-maximize-the-minimum-distance-between-points。有效而准确地解决这个问题可能是理论CS中的一个开放问题!因为这是一款游戏,所以我不确定你需要花多少精力才能以最优的方式解决这个问题。

生成随机猜测并重复(扰动它,测量扰动猜测的不良程度,如果扰动猜测的不良程度优于当前猜测,则使扰动猜测成为当前猜测)应该是非常容易,快速且接近正确的。

至于你认为一个可能的猜测有多糟糕,我的建议是"所有玩家居住的岛屿的平均值(到最近的玩家居住的岛屿的距离)"。

假设你的岛屿数量和玩家数量都很小,我认为简单的彻底搜索将是最简单和最快速的实现方法。

  1. 制作一个矩阵,包含从一个岛屿到其他岛屿的距离。(只需要
  2. 系统地迭代所有玩家位置的组合,汇总从一个玩家到所有其他玩家的距离,并存储最大值

最新更新