存储不规则间距的 3D 迷宫的点?

Storing points for a 3D maze with irregular spacing?

不久前,我在 Python 中使用深度优先搜索方法制作了一个抽象的 3D 迷宫,其中我将每个叉子作为点列表存储在字典中,并使用单独的字典来存储哪个fork 每个叉子起源于。这行得通(可以看出 here 在最后一点指向原点之后),但它似乎有点混乱,并且试图让寻路与它一起工作有点太老套了。

如果你看on this site迷宫生成部分,它看起来只是一个点网格,每个点之间可以有连接或墙。我可能是错的,它可能只是不同大小的立方体,将每个第二个立方体视为 wall/connector,但我很想知道 Python 中是否有更好的方法来做到这一点。将它存储在预先构建的 3D 网格中是不可能的,因为我不希望它受到边界的限制(你可以轻松生成数千个点),而且随着生成的进行,大小也会发生变化,因为它看起来更酷当它变得更小时,会产生大量的世代。

我知道这个问题可能不适合 SO,但我只找到了关于生成迷宫而不是在搜索时存储它们的提示,所以我认为这可能值得一问。

我不知道我是否理解你的问题,或者这是否有助于迷宫的可视化,但如果你只想在遍历时存储结构或路径,你可以使用修改后的 doubly linked list 带有一些额外的信息,比如颜色来判断你是否访问了一个节点。链表可以有一个 children 的列表,就像叉子一样。每个节点都可以有一个位置,就像您链接的视频中的块一样。

一个 python 节点示例 object 对于这样的列表可以是

class node:

  def __init__(self, color, location, parent, children):
    self.nodeColor = color
    self.location = location
    self.parentNode = parent
    self.children = children

其中 parent 是节点 object,children 是节点 object 的列表。

进行深度优先搜索或任何类型的搜索时都可以使用颜色属性。如果你访问一个节点颜色它黑色,如果节点正在探索 horizon 颜色它灰色,如果一个节点没有被访问或看到初始化它是白色的。

希望对您有所帮助!