This project will help you show your mastery of spanning tree algorithms.
Explore the idea in problem P-13.13 (C++) or P-14.80 (Java) and use that to create a maze.
Use the various spanning tree algorithms described in chapter 13/14 to generate mazes of dimensions specified by the user. As noted in the problem statement, presume that each edge represents a wall between two nodes. Now as each edge is added to the spanning tree, this removes that wall.
Draw the maze in the terminal screen with *'s for walls and .'s for nodes and removed walls.
Your program should probably take command-line parameters or have a start-up menu to allow the user to choose which method to use in making their maze.
This assignment is (Level 6).
Add (Level 4) to let some wall removals actually replace the solid wall with either an open door, closed door, locked door, or secret door. (Hey, what character will represent each in your terminal display?)
Add (Level 1.5) to allow the user to specify different 'start' and 'end' locations than the upper left and lower right.
Add (Level 1.5) to occasionally remove all walls so you end up with large open areas (a nice place to put a gazebo in a hedge maze...)
Add (Level 4) to draw the maze graphically in a separate window. (Don't forget to take a screen shot of it to show me alongside your script PDF.)
Add (Level 4) to explore the disjoint set data structure and use that to join rooms together to create a maze. (Hint: This has a lot to do with union/find!)