wujue0115 / maze

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maze World GitHub language count GitHub top language GitHub

Description

Maze World 是一個視覺化呈現迷宮動畫的網頁

支援 13 種迷宮生成演算法:

  1. Randomized depth-first search (Recursive backtracker algorithm)
  2. Eller's algorithm
  3. Randomized Kruskal's algorithm
  4. Randomized Prim's algorithm
  5. Random traversal algorithm
  6. Recursive division algorithm
  7. Aldous-Broder algorithm
  8. Wilson's algorithm
  9. Hunt-and-Kill algorithm
  10. Growing tree algorithm (Newest/Random, 75/25 split)
  11. Binary tree algorithm
  12. Sidewinder algorithm
  13. Randomized A-Star algorithm (此演算法是我使用 A-Star 去優化 Wilson's 生成迷宮效率,演算法名稱是自己取的,若是有找到類似此演算法相關文獻請告知我)

支援 4 種路徑搜尋演算法:

  1. Depth-first search
  2. Breadth-first search
  3. Best-first search
  4. A-Star algorith

Live demo

Visuals

  • 進入前迷宮生成動畫

    image
  • 視覺化生成迷宮 1 (Randomized depth-first search algorithm)

    image
  • 視覺化生成迷宮 2 (Randomized Kruskal's algorithm)

    image
  • 迷宮路徑搜尋演算法動畫 (Breadth-first search algorithm)

    image
  • 操作頁面

    image
    • Setting panel: 調整迷宮長寬、選擇演算法
    • Animation panel: 動畫顯示設定 (暫停、重置、調整動畫速度等)
    • Function panel: 選擇呈現動畫類別
      • Generate: 根據 setting panel 選擇的迷宮演算法生成一個迷宮
      • Solve: 根據 setting panel 選擇的路徑搜尋演算法對一個已生成迷宮求解
      • Flood: 使用 BFS 演算法根據每個網格與起點的曼哈頓距離呈現不同的顏色深度,進而觀察一個已生成迷宮的結構複雜度
    • Editing panel: 修改迷宮內部元素顏色、給使用者客製化迷宮等功能

License

MIT

About

License:MIT License


Languages

Language:JavaScript 84.2%Language:HTML 7.4%Language:CSS 5.6%Language:C++ 2.5%Language:Python 0.2%