Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 岛屿战略游戏基地距离_Java_Algorithm - Fatal编程技术网

Java 岛屿战略游戏基地距离

Java 岛屿战略游戏基地距离,java,algorithm,Java,Algorithm,我正在用Java创建一个战略游戏,现在我正在为它编写一个地图编辑器。在游戏开始之前,玩家制作一张地图,地图上有许多岛屿和每个岛屿上的一些资源。保存地图后,选择玩家数量。每个玩家都有一个基地,基地之间的距离必须最远 因此,假设我加载了一个包含5个岛屿的地图,在游戏开始时有2个玩家——每个玩家必须有一个岛屿。这些岛之间的距离必须最大,所以应该是这样的:玩家1的岛,中立岛,中立岛,中立岛,玩家2的岛 我不知道我的算法应该是什么。这个问题似乎相当于这个问题:。有效准确地解决这一问题可能是理论CS中的一个

我正在用Java创建一个战略游戏,现在我正在为它编写一个地图编辑器。在游戏开始之前,玩家制作一张地图,地图上有许多岛屿和每个岛屿上的一些资源。保存地图后,选择玩家数量。每个玩家都有一个基地,基地之间的距离必须最远

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


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

这个问题似乎相当于这个问题:。有效准确地解决这一问题可能是理论CS中的一个开放问题!因为这是一个游戏,我不确定你要花多少精力来解决这个问题

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


至于你认为一个可能的猜测的坏处,我的建议是“平均(所有玩家居住的岛屿上最接近玩家居住的岛屿的距离)”

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

  • 制作一个矩阵,保持一个岛屿到另一个岛屿的距离。(仅必要)
  • 系统地迭代所有玩家位置的组合,总结从一个玩家到所有其他玩家的每个距离,并存储最大值

  • 玩家和孤岛的数量会很大吗?如果不是的话,你可以通过检查所有组合从
    n
    中选择
    k
    项(其中
    k
    是玩家的数量,
    n
    是孤岛的数量)简单地强制它,对于较小的
    k
    n
    -可以很快完成,无需过度思考。检查“从n中生成k的所有组合”有很多这样的例子。我不是我不是一个国防部,但我从来都不明白为什么要结束一个不提问就可以如此迅速澄清的问题。问题很少,如果OP有回应,这个问题可以很快变成一个坚实的问题。我同意阿米特的观点,并投票重新开始。我认为这个问题不是太广泛,不是吗它非常具体,可以通过评论中的几个问题加以澄清。地图是2D;您建议的5个岛屿的解决方案是1D(一条线)即使你把一串岛屿看作是一条“线”,如果你把它们连接在最小的距离上,那么你最终的终点还是很接近的。我想我同意@阿米特:只计算每一个岛屿与其他岛屿的距离。我认为一个更聪明的解决方案将围绕这样一个事实:你可以计算这些。当人们在地图编辑器上创建这些岛屿时的距离。我现在没有时间去想一个,但是如果我提出一个特定的算法,我会在以后更新你。这是矩阵遍历的二次时间乘以不同玩家的数量