Yahtzee Assignment

The following assignment replaces the assignments that have been the base of the examination. If you have already a passing grade in any of these it will be considered when you hand in the assignment. For example, if you missed only A1 you need only to hand in a domain model. If you missed A2 and/or A3 you need to hand in a full design and working application adapted to correspond to the respective assignment.

In short, the assignment is to create an application that plays the dice game Yahtzee. My suggestion is that you work with the domain model first to understand the problem and then you iteratively design, implement, test and evaluate. The game does not need to be graphically attractive (a console application is good enough). The focus should be that you fulfill the goals of the respective assignment(s) you have missed. The following are the some suggested functional requirements. Note that these should be adapted to the assignment(s) you have failed especially regarding the architecural structure (i.e MVC), patterns (e.g. strategy and observer for A3) and code quality:

  1. You should be able to play the game Yahtzee using the original rules and at least one variant of the game, for example Maxi-Yahtzee
  2. You should be able to select the number of players (1-5)
  3. A player has a name
  4. A player could be a human player or a computer player
  5. During a non finished game you should be able to save, quit the game and then resume the game
  6. The game result should be saved when it is over
  7. Two different lists for saved games should be available:
    1. A compact list that shows the date, players and the total score for each player.
    2. A full list that shows the date and the full scoring-sheet.