# Implement a program

You are required to implement a program that will simulate a dice game played by five players.  In the game a player takes five dice and the score is calculated based on a set of rules and the dice are passed to the next player. The game finishes at the end of at the round where one of the players reaches a score of 200.

Type of score
Descriptions
Example
Score
Five of a kind
All dice have the same score
1,1,1,1,1 or 5,5,5,5,5
50
Full House
Three of one value and two of another value
1,1,1,5,5 or 2,2,3,3,3
25
Four of a kind
Four dice with the same value
3,3,3,3,5 or 4,5,5,5,5
Sum of all 5 dice
Three of a kind
Three dice with the same value
2,2,2,5,6 or 1,3,5,5,5
Sum of all 5 dice
Your program should meet the following requirements:

The program must simulate a game with 5 players and 5 dice.

Every player rolls five dice and the score is added to the player’s total score after applying the rules of the game. If the dice values do not follow any of the four rules, the player’s score for this round is 0.

A round finishes when the five players have cast the dice and all the scores have been added to the players

The program finishes after a round when at least one player has got a total score greater or equal to 200. If more than one player has reached a total score of more than 200, the one with the highest score wins.

Once the game is complete, the winner must be displayed.

What you need to do
You have to use arrays and methods in the design of your program. Classes can be used but they are not necessary and you won’t be penalised for not using classes. You have to design the program that simulates the game using an algorithm that reflects the implementation.

You should create a well-structured Java program that uses the concepts that we have learned up to this point and makes sensible use of comments.

You should carry out testing of your program. You should work out a sensible way to test that the program works by tracing the simulation of the game.

1. Design of the program. The design involves a description of the way that you organised the information and the design of the program

Description of the data types used to store the information (players, dice, scores…)

Design of the algorithm used to implement the game.

Description of how you tested the program and explanation of the results. Since your program is a simulation you should use print statements to check that game is played following the rules. You should also provide a description of problems encountered and how you have solved them or failed to solve them.

Implementation. Please cut and paste your code into the word-processed document that you submit.  Your code should be in a fixed-pitch font such as Courier and indented sensibly. You will gain marks for :

         Declaration of suitable variables and correct use of data types to store the game’s data
         Implementation of the game with loops and if statements