私の質問は、Javaでランダムに生成された迷路をどのように作成することができますか?私は迷路を作成するDFSの方法の主な概要を知っていますが、実装には苦労しています。私のプログラムでは、迷路は2D配列で保持され、配列に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
は、私はあなたの隣人を調べて、どのようにそれらを破壊するために彼らの壁を持っている場合、あなたは見つけることができますどのように理解していないのです。誰もが私にこのプログラムのいくつかの洞察を与えることができます。とても有難い。
あなたの代わりに '' Array'のArrayList'を使用することができ、その後、彼らは何が必要サイズに対応するために成長します:壁がここにある場合教えて
。 – twain249
壁をノックダウンしたり、壁を追加して迷路を作ることができます。最初に基本的な迷路を作って壁をランダムに動かし、その変化が迷路を多かれ少なかれ「挑戦的」にしたかどうかをテストしたならば、最も興味深いものが作成されるでしょう。創造の余地がたくさんあります。 –