最佳多人迷宫生成算法
我正在研究一个简单的多人游戏,其中2-4个玩家被放置在迷宫中的单独入口处,需要达到一个目标点。一般而言,生成迷宫非常容易,但是在这种情况下,游戏的目标是在其他所有人之前达到目标,并且我不希望生成算法大大地偏爱一个玩家而不是其他玩家。
因此,我正在寻找一种迷宫生成算法,其中每个玩家从起点到目标的最佳路径不会比平均路径多10%。这样,玩家或者多或者少地处于平等的竞争环境中。谁能想到这样的算法?
(我目前有一个主意,但并未经过深思熟虑,而且似乎远未达到最佳效果-我将其发布为答案。)
解决方案
我能想到的最简单的解决方案是像正常情况一样随机生成整个迷宫,然后随机选择目标点和玩家起点。完成此操作后,计算从每个起点到目标的最短路径。找到平均值并开始"平滑"(消除/移动障碍-不知道如何工作)明显高于平均值的路径,直到所有路径都在适当的范围内。此外,有可能采用明显低于平均水平的方法,并插入其他障碍。
首先选择球员和球门的位置以及等长路径,然后按照定义的路径构建迷宫,那又如何呢?我认为,如果路径不相交,这应该很容易工作
我将通过设置目标和每个玩家的切入点,然后为每个人到目标生成相似长度的路径来实现这一目标。然后,我将开始沿着这些路径添加错误的分支,请小心避免链接到其他玩家的路径,或者让分支连接回到该路径。因此,基本上每个分支都是死胡同。
这样,我们可以确保路径的长度相似。但是,它不允许玩家彼此互动。但是,我们可以通过在分支之间创建链接,从而使这条路径上的分支入口点与目标的距离相近,从而实现这一目的。在这个分支上,我们可以分出更多的死胡同,以获取乐趣和收益:-)
自由空间答案的另一种选择是生成一个随机迷宫,然后为每个单元分配一个值,该值代表到达迷宫末端的移动次数(如果我们决定从"末尾"开始,则可以一次执行')。然后选择一个距离(也许是最高距离,那个距离上有n个点?),然后将玩家放置在具有该值的正方形上。
在中间的某个地方选择退出点
从此处开始N条路径,每个循环的每个路径加1,
直到他们与我们希望的一样长。
有N个起点,并且它们的长度都相同。
从行中添加其他分支,直到迷宫装满为止。