This project uses Python along with pygame package, to visualize complex maze generation and multiple shortest-path finding algorithms.
| Algorithm | Purpose |
|---|---|
| Randomized Prim's Algorithm | Maze generation |
| Dijkstra's Algorithm | Shortest-Path-Finding |
| Breadth First Search Algorithm | Shortest-Path-Finding |
| A* Search Algorithm | Shortest-Path-Finding |
| Q-Learing + Depth First Search Algorithm | Shortest-Path-Finding |
- Clone the repository:
https://github.com/Chang-Chia-Chi/Maze-Generator-and-Shortest-Path-Finding-Project.git - Run
pip3 install -r requirements.txtto installpygamepackage required. - Change direction to
/Shortest_Path - Run
python runner.pyto start the game.
| Left Click |
|---|
| Drawing walls on board |
| Erasing walls on board |
| Button click |
| Right Click | Note |
|---|---|
Set start & target cell |
Create start first then target |
Remove start & target cell |
Must remove target first then start |
| Button | Purpose | Note |
|---|---|---|
| Search Start | Start Shortest-Path-Finding using specified algorithms | If any of start, target cell and algorithm has not been chosen, search will not start. |
| Draw Wall | Drawing walls manually | Will not overwrite start and target cells. |
| Erase Wall | Deleting walls manually | |
| Maze | Generating Maze | Choose start cell only and no wall exist.Recommend to reset board first. |
| Reset | Reset and initailize board |
| Button | Algorithm |
|---|---|
| D | Dijkstra |
| B | Breadth First Search |
| A | A* Search |
| Q | Q-Learning with Depth First Search |



