ハミルトン路パズル「Number Trail」の設計と実装

· web · Source ↗

要点まとめ

  • Number Trail は、フレームワークもバンドラーも使わないブラウザパズルで、ハミルトン路理論を基盤にWarnsdorffのヒューリスティックでランダムなパズルを生成する。

注目ポイント

  • 素のHTML/CSS/単一JSモジュールのみで、ビルドステップなし。パズルファイルはプレーンテキストで「メタデータ・グリッド・壁」の3セクション構成となっており、バージョン管理でdiffが取りやすい。
  • コアの制約はNP完全問題(ハミルトン路)だが、通過順序を固定する番号付きウェイポイントによって探索空間が大幅に絞られ、現実的な計算量に収まる。
  • 壁は既知の解経路の外側にある辺にのみ配置されるため、実行時チェックに頼らず構造上の保証として解の存在が担保される。
  • Warnsdorffのルール(次に進める手が最も少ない隣接セルを優先)により、5×5〜10×10グリッドで有効な経路を生成し、行き詰まった場合はスネーク走査にフォールバックする。
  • 経路の描画にはCSS gridのgapを暗黙のグリッド線として活用し、各セルに4方向のアーム要素を持たせてdata属性のトグルで制御することで、状態変化時にレイアウトのリフローが発生しない設計になっている。

Hacker Newsのコメント状況

  • まだ実質的な議論は見られない。

原文 | HNで議論する


英語版: Building a Hamiltonian Path Puzzle · Original source