Maze_solver provides a relatively quick computer vision solution to most mazes.
Maze_solver reads in images of mazes, performs thresholding and thinning, and then converts the remaining "on" pixels to a network. A simple keyboard UI allows the user to update the starting and ending points. The maze is solved using a simple dijkstra algorithm.
python -m venv venv
pip install -r requirements.in
source venv/bin/activate
src/maze_solver.py
Key | Result |
---|---|
s | Move starting point left |
f | Move starting point right |
e | Move starting point up |
d | Move starting point down |
j | Move ending point left |
l | Move ending point right |
i | Move ending point up |
k | Move ending point down |
space | Accept start and end points and solve. |
escape | Exit |
The next steps in this project are to
- Add a CLI to allow user to run on their own mazes
- Save the name of the file and the starting and ending points in a cache file.
- Allow the user to use a camera instead of an image.
- Allow the user to use the mouse to specify starting and ending positions
- Allow the user to display thinned image
- Handle color mazes - thresholding and thinning
Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
John Lee Cooper
[email protected]