我的問題是我將如何能夠在Java中創建一個隨機生成的迷宮?我知道DFS創建迷宮的主要方法,但我很難實現它。在我的程序中,迷宮保存在二維數組中,並向數組中添加1會產生數組越界異常。我將如何避免這種情況?我不想製作一個非常複雜的迷宮,只是一個簡單的迷宮。儘管我已經開始創建代碼,但我不確定如何使其工作。在Java中打造迷宮?
爲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
我不理解你如何找出如果你的鄰居有自己完整的牆壁,以及如何將其銷燬。任何人都可以給我一些這個計劃的見解。非常感激。
你可以使用一個'ArrayList'而不是'Array',然後他們將增長,以適應任何你需要的大小。 – twain249 2012-03-21 02:41:01
您可以通過敲下牆壁或添加它們來建造迷宮。如果你第一次創造了基本的迷宮,然後隨機移動了牆壁,那麼最有趣的可能是建立起來,然後測試這個變化是否使得迷宮或多或少地具有「挑戰性」(無論你怎麼想)。很多創造力的空間。 – 2012-03-21 03:25:10