ゴール
3D 迷路を生成するプログラムを作成していますが、作成アルゴリズムに少し問題があります。相互作用を容易にするために、入口と出口が 1 つずつある四角柱になります。
アルゴリズム
問題は、アルゴリズムの実際のコーディングです。これを使用する最善の方法はMazeBlock
、迷路の方向を示す 6 つのブール値状態 (上、下、左、右、イン、アウト) を持つというクラスを作成することだと考えました。次に行ける。s の3D 配列を使用してMazeBlock
、迷路を塗りつぶしたいと考えています。塗りつぶしの各反復で、ブロックの左、右、上、下、前、後ろをチェックして、その側に開口部があるかどうかを確認します。添付する。
迷路の内側に向かってランダムな開いたスロットを配置して、エッジを作成するものを既に持っています。私が問題を抱えているのは、実際の内部であり、迷路に 1 つの入り口、1 つの出口、およびそれを通過するための 1 つの解決策があることを確認することです (私はかつて、ポップアップブックの「難しい」3D 迷路を、意図した反対の数歩だけ進むことで解決しました)。方向。
質問
私が言っているように、アルゴリズムの基本的なアイデアはあると思いますが、それをコーディングする方法がわかりません。誰かがこのタスクを比較的迅速に達成する Java アルゴリズムを考え出すことができますか?
ソリューションでは、外部ライブラリを使用してはなりません。