Assignment Brief

For this assignment, you must develop a multi-player general knowledge quiz game, which is an easier variation of Trivial Pursuits. Know-It-All is a turn-based quiz game for between 2 4 players inclusive. The aim of the game is to be the first player to correctly answer a question from each of the six categories. Those categories are: Geography; History; Entertainment; Arts and Literature; Science and Nature; Sports and Leisure. These questions are colour coded to make the player progress tables easier to read.

Category number Question Category Colour Name Colour
1 Geography Blue
2 History Yellow
3 Entertainment Pink
4 Arts and Literature Brown
5 Science and Nature Green
6 Sports Orange

Each player has a board showing which questions they have answered correctly. At the start of the game, each player will have blanks beside each category.

Player name
Geography History Entertainment Arts and Literature
Science and Nature
Sports

As they correctly answer a question for a category they have not already had a correct answer for, their board should be updated to show that type of question has now been answered by the player. There should be a large bank of question cards for each category. The questions for each category should be kept separate, and shuffled before the game starts. Each question card will have one question on it. Each question is a multiple choice with 4 possible answers of which only one is correct. The card must store details as to which answer is the correct one. The player whose turn it is will roll a dice and the outcome of the dice roll will determine which type of question they get asked. The categories are numbered 1 to 6 as shown.

Each player is given a number. For example, if there are two players then there will be Player 1 and Player 2, whereas if there are 3 players the game will have Player 1, Player 2 and Player 3,. If there are the maximum 4 Players then the game will have Player 1, Player 2, Player 3 and Player 4. Player 1 starts the game, and once finished their turn it will switch to Player 2, and so on until it gets to the last player, after which it goes back to Player 1.

The turn only changes when a player answers a question incorrectly. As a result, it would be possible for Player 1 to win without any other player getting a chance to answer a question if Player 1 never answers a question incorrectly.

For the purposes of the game you are designing, it is assumed that all players will be playing on the same computer and that they will observe an honour code and not take turns for their opponent.

You must:

  • Develop the program.
  • Document your class design in UML.
  • Test the program using an appropriate testing regime.

Your application should be presented as one window or form with a start button, label, and textbox for entering the number of players.

When the Start button is pressed, if the number of players entered is valid, the application should load a window or form containing a 7 columns grid of labels, with between 3 and 5 rows. The number of rows displayed will depend on whether there are 2, 3 or 4 players in the game. The top row of labels should contain a blank label followed by the names of the six question categories, in order. The first column should contain an empty label followed by the names of the players. The remaining labels will be initially blank, but should change colour when a player answers their first question of that category correctly. Underneath the grid should be a label displaying whose turn it is (Player One, Player Two, Player Three, or Player Four), and a Button to roll the dice.

Once the dice has been rolled, the Roll dice button should be hidden and a label to display the number rolled and question category made visible. A second label to display the question should also be made visible. The question options should be displayed using an appropriate format such as radio buttons, to allow for easy selection. An Answer button should also be made visible. This change of the bottom half of the form could be achieved either through hiding and making visible various components, or through having two separate lower panels on the form which can be changed depending on whether the player is being asked a question, or being asked to roll the dice.

There is no limit on the number of turns. The game continues until one player has answered at least one question from each of the six question categories correctly.

Your program will need to perform the following operations:

  • Set up the graphical user interface.
  • Represent question cards as objects.
  • Provide a way to link internal representations of the question categories answered correctly by each player to suitable GUI components e.g. labels.
  • Allow players to choose the number of players.
  • Perform data validation to ensure the number of players selected is valid.
  • Generate dice rolls between 1 and 6.
  • Select a suitable question based on the dice roll.
  • Correctly identify whether the question was answered correctly or incorrectly.
  • Keep the turn with the current player until they answer a question incorrectly.
  • Update the grid correctly when a player answers a question correctly from a category they have not already answered a question correctly in.
  • Keep track of whose turn it is.
  • Display a Congratulations, You Win style of message once a player has answered at least one question correctly for all 6 of the question categories.

As part of the deliverables for this module, you should write up a full testing plan for the system, and create a report that describes why you chose the testing data you did and what testing categories you are stressing in your regime. You should include in your report a full log of how you implemented the testing, and note what regression testing you needed to do as a result of fixes you made to the program. Your testing plan and the implementation of that plan should incorporate both unit testing and integration testing, as well as white box testing and black box testing.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.