つないでみると
グリッド、CA の洞窟、酔歩の通路、BSP の部屋、L 字の廊下、DFS の迷路、ノイズと中点変位の地形、水の侵食、ボロノイの区画、フローフィールドのナビ、WFC の制約、ブルーノイズの配置。洞窟の多数決は平滑化の CA、地形のノイズは雲の質感を作るノイズ、区画のボロノイは細胞模様の Worley、ナビの距離場は連結性の BFS。塗って濃淡で見せていた場が、そのまま歩いて遊べるマップになる。
どの作例も Math.random を直書きしているので毎回ちがう地形が出る。種を一つ固定すれば、同じ種から必ず同じ地形が戻り、共有も再開もできる。
Math.random には種を渡せず、生成のたびに別の系列になる。種から決まる擬似乱数列が要る。代表格が mulberry32 で、32 ビットの状態 s を一つ持ち、s += 0x6D2B79F5 で進めて整数演算で撹拌し、0〜1 の値を返す。同じ初期 s からは必ず同じ列が出る。Math.random() の呼び出しを rng() に差し替えるだけで、生成全体が種で再現できる。
生成したマップを実際に歩かせる。keyboard(signal) の onKeydown は、キーが押された瞬間に一度だけハンドラを呼ぶ離散イベント。押された向きの隣マスが壁でなければそこへ一歩進め、踏んだマスを踏み跡として残す。下は、ランダム埋めを CA で 2 回均した洞窟を生成して、最初に見つけた床にプレイヤーを置き、矢印キーで歩かせたもの。
プレビューをクリックして矢印キーを押すと、暗い壁を避けて床の上だけを一マスずつ進む。壁の方向へ押しても tryMove が弾くので、その向きには動かない。踏んだマスが明るく残って、通った跡が地図の上に線で浮かぶ。生成された洞窟が、塗って見せる絵から、足跡のつくマップに変わる。onKeydown を down の poll に替えれば押しっぱなしで連続移動になり、踏み跡を更新ルールつきの場として読めば、歩いた所が崩れたり光ったりする層も足せる。