Uses PyQt5 to paint the mazes. The user can make a maze and then watch as it is solved. Uses brute force threading to solve the maze. Randomly generated mazes are a future addition.
The maze is solved by brute force. Essentially, if there is a pathway that it can go into, it does it.
Each time it branches off into another pathway, it makes a new thread for that pathway. Each thread has a list with its complete history, so when the end is found the shortest path from start to end can be found.
Clicking the edit button changes the gui slightly to: When the user is editing, they can place the start and end of the maze, add or remove walls, and change the height and width of the maze.
You're free to use this code as long as you credit me.
MIT © Traptricker