For this assignment, you must create a maze that user must navigate through from entrance to exit. The maze is composed of rooms. Each room has 1 or more doors (the design is up to you). In order for the user to pass through a door, s/he must correctly answer a question. The type of questions asked are up to you, but you should have multiple choice, true/false, and short answer (one or two words/ one or two numbers). The questions (and their corresponding answers) should be stored in a SQLite database. The format of the database is up to you, but you might want to categorize your questions into the different formats you must display them in.
If a the user is unable to answer a question, that door is then locked permanently. If the user is unable to make it from the entrance to the exit (due to locked doors), the game is lost.
You may display one room at a time, the entire maze, or the current room and the entire maze.
You are welcome to implement variations on this theme, but run them by me first. You might place items in the room that can help the user (magic key that gets you through one door, a hint (ala "Who Wants to be a Millionaire") that reduces the multiple choice options or gives you the first letter/digit of an answer that must be typed.
The size of the maze is up to you, but should be at least four by four rooms. You can randomly place the entrance and exit, or you can fix them at opposite ends.
The classes you create are up to you, but it seems you should have these: Maze, Room, Question_Answer (this could be an inheritance hierarchy), MazeDriver. Your program should have the ability to save the current state. We will ultimately do this using serialization so if you want to investigate that on your own, feel free to do so. Otherwise, you'll need to write info about where the user is, how many questions answered, which rooms have been processed, etc. to a text file.
There may be more specifics given in the coming days as we discuss this more as a class.
Have fun with this: be creative and try out the different aspects of C# as much as possible.
Add a graphical interface that contains the following items:
Your program should read from a SQLite database file. Extra credit consideration will be made for the following (maximum EC possible is 25 points!):
Submit a zipped file with your last name followed by your first initial followed by proj2d (ex: capaultproj2d.zip) -- if you work in teams include both of your names as part of the zip file. Include in the zipped file all source code, and the database file necessary for your program to execute. Also include your compiled assembly (or assemblies).