.forgejo | ||
.github/workflows | ||
assets/images | ||
.gitattributes | ||
.gitignore | ||
app.py | ||
cell.py | ||
errors.py | ||
graphics.py | ||
LICENSE | ||
line.py | ||
main.py | ||
maze.py | ||
README.md | ||
solver.py | ||
tests.py |
Maze Solver
Overview
Maze Solver is an interactive maze simulator developed with Python and Tkinter. With this application you can randomly generate mazes and watch as different algorithms try to solve them.
Demo
Repository mirrors
- Code Flow: https://codeflow.dananglin.me.uk/apollo/maze-solver
- GitHub: https://github.com/dananglin/maze-solver
Requirements
To run the application you'll need a recent version of Python 3. This application was built and tested with Python 3.12.2.
You'll also need to make sure that you have Tkinter
installed with your Python installation.
You can test this by running the following in your terminal:
python -m tkinter
If the module is installed then you should see a new small window appear on your screen.
If its not you'll see an error message starting with ModuleNotFoundError
and you'll need to install it.
You may find guides online on how to install Tkinter for your operating system.
How to run the application
Clone this repository to your local machine.
git clone https://github.com/dananglin/maze-solver.git
Run the application with Python.
cd maze-solver
python3 main.py
You should now see the Maze Solver window on your screen.
Generate a new maze by clicking on the Generate maze
button and watch the application generate the maze.
Once the maze is generated choose which searching algorithm you want to see solve the maze.
As of writing BFS
and DFS
are available with more along the way.
Next choose if you want to enable randomness to the algorithm with the Enable randomness
checkbox.
Randomness is applied when the solver stands before a fork in its path and has to choose from a number of possible directions.
With randomness enabled it will randomly choose the next direction and with it disabled the next direction is chosen from something very similar to an ordered list.
Once you're happy with the options, click on the Solve the maze
button to start the simulation.
As the solver traverses through the maze, it leaves a red trail so that you can keep track of its progress.
When the solver reaches a dead-end it backtracks until it can choose a new path to traverse. When it backtracks it leaves behind a grey trail.
After the solver solves the maze (or fails to do so) you can run the simulation again on the same maze with by pressing the Solve the maze
button.
Try running choosing a different algorithm or toggle between randomness before running the simulation again.
You can also generate a new maze by clicking the Generate maze
button again.