## The Game Of Dice

The project is to create a 2-player game of dice.

Game Rules:

- The user selects the number of rounds to be run. Each dice round consists of 3 values:

- Dice – the value of the dice rolled. It is a random number between 1-6.
- Points – value associated with the round. It is a random number from 10-100 in multiples of 10. (10 * random number between 1-10).
- Type – the type of the round. There are 3 types of rounds:

REGULAR – keep the “points” equal to the number of points as calculated above using a random number generator.

BONUS – replace “points” to be equal to 200.

DOUBLE – update “points” to be equal to DOUBLE the number of points as calculated above using a random number generator.

Probability of the round types:

- 20% for BONUS, 30% for DOUBLE, and 50% for REGULAR
- The game consists of two players (1& 2). The game starts with one player at random.
- For each round, one of the following cases can occur:

- Success: Player-1 (odd player) is the current player and the dice rolled is odd

OR Player-2 (even player) is the current player and the dice rolled is even.

The current player gains the points, based on the type of round (see above). The current player’s turn continues in the next round.

- Failure: Player-1 (odd player) is the current player and the dice rolled is even

OR Player-2 (even player) is the current player and the dice rolled is odd.

Current player incurs the penalty of the same number of points, based on the type of the round (see above). In the next round, the current player is changed to the other player.

- At the end of all rounds, the player with the highest points wins the game.

**Solution:**

**Task 1: Complete the main.c
**

- Download the attached main.c
- Follow the instructions written in the comments in the main() function. The main() is the driver of the program. It calls the functions below to play the game.

**Task 2 – create and write dice game.h
**

- Include the header guard in the correct format.
- Create an enum named ROUND TYPE to identify the three-round types:

BONUS, DOUBLE, REGULAR

- Write all the function prototypes – see Task below.

**Task 3 – create and write dice game.c
**

Write the following functions that use the game rules described above:

- int getRandomNumber( int min, int max )– This function computes a random number between min and max, inclusive, and returns it

- ROUNDTYPEgetRoundType( ) – This function decides the type of the round based on the probability values mentioned in-game rules (20% for BONUS, 30% for DOUBLE, and 50% for REGULAR). HINT: Use the getRandomNumber()function to generate a random number between 0through9 and use this value for the probability

- intgetRoundPoints( ROUND TYPE)– This function calculates and returns the points associated with the given round type, based on the rules mentioned above. You will need to call the getRandomNumber() function to generate the points randomly.

- void printPlayerPoints( intp1, int p2 ) – This function prints out the player points at the end of each round in the format shown below:

P1:200

P2: 100

- void printRoundInfo( ROUND TYPE t, int dice, int points ) – This function prints out the information for each round in the format shown below:

Type: BONUS

DICE: 4

POINTS: 200

**Sample Output
**

**############### RUN-1 ###############
**

Enter the number of rounds: 5

P1 : 0

P2 : 0

ROUND 1

--------

Player: 1

Type: REGULAR

Dice: 5

Points: 70

P1: 70

P2 : 0

ROUND 2

--------

Player: 1

Type: REGULAR

Dice: 2

Points: 50

P1: 20

P2 : 0

ROUND 3

--------

Player: 2

Type: DOUBLE

Dice: 4

Points: 180

P1: 20

P2: 180

ROUND 4

--------

Player: 2

Type: DOUBLE

Dice : 3

Points: 140

P1: 20

P2: 40

ROUND 5

--------

Player : 1

Type : DOUBLE

Dice : 3

Points : 180

P1 : 200

P2 : 40

GAME OVER!!

P1 Won

**############### RUN-2 ###############
**

Enter the number of rounds: 5

P1 : 0

P2 : 0

ROUND 1

--------

Player: 2

Type: REGULAR

Dice: 6

Points: 40

P1 : 0

P2: 40

ROUND 2

--------

Player: 2

Type: BONUS

Dice : 3

Points: 200

P1 : 0

P2: -160

ROUND 3

--------

Player : 1

Type : BONUS

Dice : 4

Points : 200

P1 : -200

P2 : -160

ROUND 4

--------

Player: 2

Type: REGULAR

Dice: 5

Points: 20

P1: -200

P2: -180

ROUND 5

--------

Player: 1

Type: DOUBLE

Dice: 6

Points: 100

P1: -300

P2: -180

GAME OVER!!

P2 Won

**Solution:**

**Main.c**

```
// Add all the includes for the required header files
#include
```

**Dicegame.h**

```
#ifndef dicegame_h
#define dicegame_h
typedef enum
{
BONUS,
DOUBLE,
REGULAR
} ROUNDTYPE;
// Computes a random number between min and max, inclusive, and returns it
int getRandomNumber(int min, int max);
// Decides the type of round based on the probability values mentioned in game rules
// (20% for BONUS, 30% for DOUBLE, and 50% for REGULAR
ROUNDTYPE getRoundType();
// Calculates and return the points associated with the given round type, based on the
// rules mentioned above.
int getRoundPoints(ROUNDTYPE roundType);
// Prints out the player points at the end of each round.
void printPlayerPoints(int p1, int p2);
// Prints out the information for each round.
void printRoundInfo(ROUNDTYPE t, int dice, int points);
#endif
```

**Dicegame.c**

```
#include "dicegame.h"
#include
```