see it live here: Heroku Demo
Generates an interactive visualization of the algorithm.
- Dijkstra's Algorithm (weighted): the father of pathfinding algorithms; guarantees the shortest path
- A Search* (weighted): arguably the best pathfinding algorithm; uses heuristics to guarantee the shortest path much faster than Dijkstra's Algorithm
- Greedy Best-first Search (weighted): a faster, more heuristic-heavy version of A*; does not guarantee the shortest path
- Swarm Algorithm (weighted): a mixture of Dijkstra's Algorithm and A*; does not guarantee the shortest-path
- Convergent Swarm Algorithm (weighted): the faster, more heuristic-heavy version of Swarm; does not guarantee the shortest path
- Bidirectional Swarm Algorithm (weighted): Swarm from both sides; does not guarantee the shortest path
- Breath-first Search (unweighted): a great algorithm; guarantees the shortest path
- Depth-first Search (unweighted): a very bad algorithm for pathfinding; does not guarantee the shortest path
Create sample mazes with walls and weights:
- Recursive Division
- Recursive Division (vertical skew)
- Recursive Division (horizontal skew)
- Basic Random Maze
- Basic Weight Maze
- Simple Stair Pattern
The app allows to adjust the speed to draw the path with 3 levels: fast, average and slow.
Install Angular CLI:
$ yarn global add @angular/cli
Install node modules:
$ yarn install
Run the app
$ yarn start
To build production:
$ yarn run build
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
Thanks