This program is a basic maze solver that takes in the photo of a maze and outputs a photo of the solution. This program has an additional option to visualize the solving process to see how the pathfinding algorithms works.
The point of this project was to familiarize myself with graphs (networks of nodes), pathfinding algorithms (Dijkstra's and A*), multithreaded programming, and the SFML library.
Small Maze 1 | Small Maze 2 |
---|---|
The following is the same maze solved with two different pathfinding algorithms
Dijkstra's | A* |
---|---|
It should be noted that due to the fact that mazes usually have only one solution that is very intricate and does not always head directly towards the end goal, the advantage of A*'s direction heuristic tends to be marginalized. However, the advantage becomes more apparent in mazes with various turns and solutions such as the following.
Dijkstra's | A* |
---|---|