This project explores basic graph theory by using different algorithms to generate, optimize, and solve mazes.
- Make random maze
- Divide maze
- Make room maze
- Cellular automaton
- Primitive (Prim’s algorithm)
- Row by row
Inspiration for algorithms was taken from this wiki page
Given the starting square, places the finish square at the end of the longest path
Can print to file given a maze or print to file with parameters filename and optional for graph type, size, minimum solution length.
Can play the maze on your screen by creating a MazeLevel object that takes a maze input. Call playLevel() to play. Use the arrow keys to move your character and win by reaching the red finish square!
Initializes a 2D grid from a specified width and height. All positions start as walls and from a random starting position changes walls into paths.

