This is a web application built with vanilla JavaScript and is used to visualize maze algorithms and pathfinding algorithms. I built this application because I was fascinated by these algorithms and also wanted to improve my Front-End skills. You can access it here: https://pinglu85.github.io/maze/
This application includes the following maze algorithms:
-
Hunt-and-Kill: produces mazes that have long, twisty passages and relatively few dead ends.
-
Recursive Backtracker: produces mazes that have long, twisty passages and relatively few dead ends; much faster than Hunt-and-Kill.
-
Recursive Division: a fast algorithm; builds walls, rather than breaking through them.
-
Growing Tree: depends heavily on how the next cell is selected from the set.
-
Binary Tree: produces mazes that have a very biased texture.
-
Randomized Kruskal's Algorithm: produces very regular, uniform mazes; largely unbiased.
-
Aldous-Broder Algorithm: one of the least efficient maze algorithms; unbiased.
This application includes the following pathfinding algorithms:
-
Dijkstra's Algorithm: the classic pathfinding algorithm; guarantees the shortest path.
-
A* Search: one of the best pathfinding algorithm; uses heuristics to guarantee the shortest path; much faster than Dijkstra's Algorithm.
Buck, James (2015). Mazes for Programmers. Pragmatic Bookshelf.