我的问题是如何在 Java 中创建一个随机生成的迷宫?我知道创建迷宫的 DFS 方式的主要轮廓,但我很难实现它。在我的程序中,迷宫被保存在一个二维数组中,向数组加 1 会产生一个数组越界异常。我将如何避免这种情况?我不想做一个非常复杂的迷宫,只是一个简单的迷宫。虽然我已经开始创建代码,但我不知道如何使它工作。
DFS 方法的伪代码是:
create a CellStack (LIFO) to hold a list of cell locations
set TotalCells = number of cells in grid
choose a cell at random and call it CurrentCell
set VisitedCells = 1
while VisitedCells < TotalCells
find all neighbors of CurrentCell with all walls intact
if one or more found
choose one at random
knock down the wall between it and CurrentCell
push CurrentCell location on the CellStack
make the new cell CurrentCell
add 1 to VisitedCells
else
pop the most recent cell entry off the CellStack
make it CurrentCell
endIf
endWhile
我不明白你怎么能知道你的邻居的墙壁是否完好无损以及如何摧毁它们。谁能给我一些关于这个程序的见解。非常感激。