About
迷路の生成について
迷路の生成には、プリム法を用いています。
まず全体の列数と行数を奇数に設定して、ランダムな偶数行偶数列目のセルを選びます。
ここから壁を掘り進んでいくイメージで迷路を生成します。
最終的には、偶数行偶数列目のセルは全て通路になり、逆に奇数行奇数列目のセルは全て壁になると覚えておいてください。
まずはじめに選んだセルから、上下左右ランダムな方向に2マス掘り進めます。
すでに掘られている偶数行偶数列目のマスをランダムに選びます。(1)
上下左右の内、2マス先がまだ掘られていない方向をランダムに選び、2マス掘り進めます。(2)
(1)と(2)を繰り返し、掘り進められなくなったら終了です。
図解を用意予定です...
最短経路の探索について
最短経路の探索は、ダイクストラ法およびA*アルゴリズムを用いています。
解説は準備中です...
サイトについて
Astro + Tailwind CSSで作成しました。
ホームページのデモ部分とPlayページの迷路部分はAstroのアイランドアーキテクチャを用いて、p5.jsで書かれたコードをReact経由でCSR(Client-Side Rendering)として組み込んでいます。
迷路生成や最短経路探索は全てブラウザ上で行われるため、まあまあCPUを食います。ご了承ください。
Processing
障害物手書きモード、早送り、斜め移動などを備えたより自由度の高いProcessing(Java)版です。 下記からダウンロードください。
リンク
本サイトのGitHubリポジトリおよびAstroとTailwind CSS、p5.jsの公式サイトへのリンクです。別ページに遷移します。