Git Product home page Git Product logo

maze's Introduction

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

maze's People

Contributors

wujue0115 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.