A web-based application that showcases a variety of pathfinding algorithms and maze generation techniques.
Our application supports the following pathfinding algorithms:
- Dijkstra's Algorithm (Weighted): The father of pathfinding algorithms, Dijkstra's Algorithm guarantees the shortest path by exploring nodes in a graph based on their distance from the starting node.
- A* (Weighted): A more efficient version of Dijkstra's Algorithm that uses heuristics to guide the search towards the goal node, guaranteeing the shortest path.
- Greedy Best-first Search (Weighted): A faster and more heuristic-heavy version of A*, which does not guarantee the shortest path but provides a good approximation.
- Breath-first Search: A simple algorithm that explores nodes in a graph level by level, guaranteeing the shortest path.
- Depth-first Search: An algorithm that explores nodes recursively until it reaches a dead end or finds the goal node.
Our application also features a Recursive Division Maze Generation algorithm, which creates complex mazes with varying levels of difficulty.
To build this project, we used:
- HTML5 for structuring content
- CSS3 for styling and layout
- JavaScript for implementing algorithm logic
- React for building reusable UI components
- Select an algorithm from the dropdown menu or use the keyboard shortcuts (F1-F5) to switch between algorithms.
- Adjust parameters such as grid size, grid density, and obstacle density using the sliders or text inputs.
- Click "Start" to begin generating a maze or running an algorithm on your chosen settings.
- Observe how each algorithm navigates through the maze or graph structure in real-time.
We hope you enjoy exploring this interactive visualisation tool!
Contributions are welcome! If you'd like to contribute to this project, please fork this repository and submit a pull request with your changes. If you have any questions or suggestions, please feel free to contact the project owner: