Programming Project 2d

A Trivia(l) Maze with a graphical interface
150 points
-->You may work in groups of up to three if you wish

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:

  1. A menu system that has the following menus at the very least
    1. File (Save Game, Load Game, Exit)
    2. Help (About, Game Play Instructions)
  2. Tool Bar with shortcuts to the menu items above
  3. Status Bar that shows at the very least the current location.  The status bar should also be used to report what each menu option does as the menu options are highlighted
  4. A section of the form that displays info about the current room.  Load images to represent the room and its doors.
  5. Buttons that allow user navigation through the maze.  Only buttons that are valid for a room should be active/displayed.
  6. A section on the form that displays the current question.  This area should be updated dynamically based on the type of question (multiple choice, T/F, short answer, etc.)

Your program should read from a SQLite database file.  Extra credit consideration will be made for the following (maximum EC possible is 25 points!):

 

To Turn In

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).