The approach is to knock down walls randomly. If too many walls are removed, the maze will be too easy to solve. Our goal is to remove just enough walls so each room can be reached from any other in exactly one way. The rst step is to select (at random) a wall to remove. From this point on, the wall selection (still randomly done) is more intricate. We must insure that the neighboring rooms of the candidate wall-to-be-removed, are not already connected via a di erent sequence of passage ways. Such a wall is removed and we continue by selecting additional candidate walls. We will stop when exactly r. c-1 wall have been removed as described above. The general algorithm consists of two phases. First determine the demolition probability/priority for each wall; it will be very convenient to store the walls within your priority queue. The second phase is to determine which walls to remove until enough walls are destroyed. Your disjoint subset methods will be useful in determining whether two rooms are currently connected. Finally, the collection of walls removed (a pair of rooms connected through an adjacent wall) are to be stored within a file.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
window xp