迷路に立体交差を導入すると迷路の複雑さはぐっと延びます。 立体交差した道を描写するのは難しいので、あらかじめ通路パターンの画像を用意して、画像をつぎはぎして迷路の画像を生成します。 また、通路の延び方が複雑なので、あらかじめ規則表を作っておきます(下に規則表の一例を示します)。 立体交差の迷路を作る時の考え方は道延ばし法と同じです。 起点を決めて延ばせる方向に通路を伸ばします。 延ばせるとは、規則表によって、現在地のマスから道を延ばせて、延ばし先のマスは他から道が来れるという事です。 立体交差の途中で通路が止まると迷路として変なので、立体交差部分に道を延ばす際は、その先に更に延ばせるか追加の判定処理が必要です。 立体交差は縦と横のでどちらの道が上になるかで、2種類のパターンがありますが、迷路生成後にランダムに入れ替えれば十分です。
マス状態 | 他へ道を延ばす | 他から道が来る | 備考 | ||
方向 | 変化 | 方向 | 変化 | ||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | 立体交差が連続すること | |||
下 | 下 | 立体交差が連続すること | |||
左 | 左 | 立体交差が連続すること | |||
右 | 右 | 立体交差が連続すること | |||
上 | 上 | ||||
下 | 下 | ||||
左 | 左 | ||||
右 | 右 | ||||
上 | 上 | ||||
下 | 下 |