Maze Solver is an educational Python project for drawing and solving mazes using graphics and search algorithms. This project was developed as part of boot.dev courses and is ideal for learning about classes, 2D lists, graphics, and basic algorithms.
- β Dynamic creation of a grid (maze) with cells
- β Visualization of walls, entrance, and exit
- β Gradual drawing of the maze (animation)
- β Ability to add search and pathfinding algorithms (e.g. DFS, BFS β in progress)
- β Unit tests for logic verification (without graphics)
Maze-solver/
β
βββ src/
β βββ cell.py # Class representing a single maze cell
β βββ maze.py # Class representing the entire maze grid
β βββ main.py # Main program to run and display the maze
β βββ window.py # Wrapper for drawing (GUI window)
β βββ tests.py # Unit tests to verify maze logic
β
βββ README.md # This file
βββ .gitignore # Git ignore rules
Clone the repository:
git clone https://github.com/miARTre/Maze-solver.git
cd Maze-solver/src
(Optional) Create a virtual environment:
python -m venv venv
source venv/bin/activate # on macOS/Linux
venv\Scripts\activate # on Windows
Run the main program (for example, if you have main.py as entry point):
python main.py
The project includes basic unit tests for maze logic:
python -m unittest tests.py
The tests do not cover drawing, only logic such as number of cells and wall removal.
Cell Represents one maze cell. Stores walls and knows how to draw itself.
Maze Consists of many cells in a grid. Responsible for creating cells, drawing, and breaking walls for entrance/exit.
Window Simple GUI layer for drawing lines and showing animations.
Adding maze-solving algorithms (DFS, BFS, A*) Visualizing the path through the maze Interactive random maze generation
Made with π§ by miARTre β part of Boot.dev courses. All comments and pull requests are welcome!