我想使用二进制矩阵生成迷宫 当0表示空单元格时 和一面墙
我尝试使用DFS算法,问题是DFS指的是它们之间的单元格和墙壁(每个单元格最多有四个墙壁)
"然后选择尚未访问的随机相邻小区。电脑拆除了墙壁。两个细胞之间和..."
我不理解与我被要求实施的陈述类比
任何人都有任何想法?
答案 0 :(得分:1)
当被要求制作网格时,我首先制作一个多维数组。 让外部数组包含网格的每一行,每个嵌套数组都是列。 根据每个单元是否需要记住被访问,数组的每个插槽都可以包含一个简单的类或结构(取决于您选择的语言)。否则,它们可以简单地包含int或bool。
一个简单的例子可能是:
var grid = [
[1, 1, 1],
[1, 0, 1],
[1, 1, 1]
];

在中间代表一个空的单元格,被墙壁包围。
答案 1 :(得分:0)
我们的想法是构建一个单元格模式,然后在它们之间构建墙,但不是在它有DFS树边缘时。
示例DFS运行(2D情况,删除边缘,可以从节点的顺序推断):
O
O
O
O
OO
OO
OO
(this branch is stuck so start a new one)
OOO
OO
...
OOO
OOO
OOO
现在构建迷宫:
OXSOO
OXOXO
OOOXO
XXXXO
EOOOO
O -> cell
X -> wall
S -> start
E -> end
墙可以是块也可以是平面,拓扑结构相同。