Language agnostic 在网格上随机生成有向图

Language agnostic 在网格上随机生成有向图,language-agnostic,random,graph-theory,maze,Language Agnostic,Random,Graph Theory,Maze,我正在尝试随机生成一个有向图,以便制作一个类似于口袋妖怪的冰滑拼图的益智游戏 这基本上就是我希望能够随机生成的: 我需要能够在x和y维度上限制图形的大小。在链接中的示例中,它将被限制为8x4栅格 我遇到的问题不是随机生成图形,而是随机生成一个可以在2d空间中正确映射的图形,因为我需要在节点的另一侧放置一些东西(如岩石),以便在停止滑动时使其在视觉上有意义。这样做的问题是,有时岩石会出现在其他两个节点之间的路径中,或者可能出现在另一个节点上,这会导致整个图形被破坏 在与我认识的几个人讨论了这个问题

我正在尝试随机生成一个有向图,以便制作一个类似于口袋妖怪的冰滑拼图的益智游戏

这基本上就是我希望能够随机生成的:

我需要能够在x和y维度上限制图形的大小。在链接中的示例中,它将被限制为8x4栅格

我遇到的问题不是随机生成图形,而是随机生成一个可以在2d空间中正确映射的图形,因为我需要在节点的另一侧放置一些东西(如岩石),以便在停止滑动时使其在视觉上有意义。这样做的问题是,有时岩石会出现在其他两个节点之间的路径中,或者可能出现在另一个节点上,这会导致整个图形被破坏


在与我认识的几个人讨论了这个问题之后,我们得出了一些结论,这些结论可能会导致一个解决方案。在构建图形时,将网格中的障碍物作为图形的一部分。从一个完全填充的网格开始,只需绘制一条随机路径并删除将使该路径起作用的块,但问题是如何确定要删除哪些块,这样就不会意外地引入额外的、较短的路径。我们还认为动态规划算法可能是有益的,尽管我们中没有人太擅长从无到有地创建动态规划算法。关于这个问题的正式名称(如果它是一个正式的图形问题)的任何想法或参考资料都将非常有用。

我不会将它视为一个图形问题,因为正如您所说的,表示是不完整的。为了生成一个谜题,我会直接在网格上工作,然后向后工作;首先修复目标点,然后以某种方式放置石头以从一个或多个点到达目标点,然后迭代添加石头以到达其他点,限制条件是您永远不会添加一块石头,它会打断所有通往目标点的路径。

我不会将其视为图形问题,因为正如您所说的,表示是不完整的。为了生成一个谜题,我会直接在网格上工作,然后向后工作;首先修复目标点,然后以某种方式放置石头以从一个或多个点到达目标点,然后迭代添加石头以到达其他点,限制条件是您永远不会添加一块会打断所有通往目标点的路径的石头。

您可能希望生成,这意味着图形的边在二维空间中不会相互重叠。平面图的另一个定义是,每个平面图都没有K_3,3(具有六个节点的完全二部图)或K_5(具有五个节点的完全图)类型的子图


平面图的快速生成有一个问题。

您可能需要生成一个,这意味着图形的边在二维空间中不会相互重叠。平面图的另一个定义是,每个平面图都没有K_3,3(具有六个节点的完全二部图)或K_5(具有五个节点的完全图)类型的子图


关于快速生成平面图有一个很好的问题。

这个问题很好,但可能更适合程序员SE站点。我的直觉不是试图生成图形,而是从障碍物的随机放置开始,然后从中导出图形。我也尝试过,最后不得不多次重新运行以获得一个好的。好的定义是从开始到结束求解的步骤数。这需要一段时间,因为它本质上只是野蛮地强迫一个解决方案。我将在程序员SE中再次提问,谢谢。这个问题很好,但可能更适合程序员SE站点。我的直觉不是试图生成图形,而是从障碍物的随机放置开始,然后从中导出图形。我也尝试过,最后不得不多次重新运行以获得一个好的。好的定义是从开始到结束求解的步骤数。这需要一段时间,因为它本质上只是野蛮地强迫一个解决方案。我也会再问一遍,谢谢。