迷路生成

迷路の生成アルゴリズム

for 部屋番号 in 0...部屋最大値
  部屋を作る
  break if (作る場所がない)
  if (部屋番号 != 0) then
    for 試行数 in 0...トンネル最大値
      if (新しい部屋から既存の迷路まで穴を掘る) then
        break if (!トンネルを複数掘るか)
      end
    end
  end
end

大まかにはこのような感じにした。
無駄な計算を省くと速度が上がる。C化するだけでなくアルゴリズムの改良も重要だ。同じ計算を二度しないようにキャッシュするのも大切だ。