【发布时间】:2015-05-17 09:07:34
【问题描述】:
对于迷宫生成的算法DFS:
1) 每当有路可走时,我将堆栈推入后,堆栈值是否应该改变?
例如下面的 5x5 迷宫:
0, 0, 0, 0, 0
0, 1, 0, 0, S
0, 1, 1, 1, 1
0, D, 0, 0, 0
0, 0, 0, 0, 0
假设从源代码我向下移动了一步(CurrentCell)
堆栈将推入坐标 (5,2)(当前源位置)
然后当我到达 (5,3) 时,currentCell 将成为 Source。 (5,3)
我说的对吗?
所以当源移动到下一个左侧路径时,堆栈将推入当前坐标,即 (5,3) 以此类推,直到它到达死胡同而不是目的地。
所以按照上面的例子:
堆栈将首先压入值
堆栈(0) (5,2) 堆栈(1) (5,3)
。 . . .
问题是,我应该如何推入 x 和 y?因为目前的问题是,即使我推入 x 和 y,x 和 y 仍然保持在原始值,而不是不断更新。这就是为什么我的回溯不起作用的原因,我猜。
代码:
(random == 3) //To check for bottom neighbor
{
if (y+ 2 < column) //In case the column overshots
{
{
maze[x][y+ 1].setValue(1); //New Path Set as 1
myStack.push(maze[x][y]);
y= y+ 1;
}
}
}
【问题讨论】: