Description
For this assignment, write a program that will simulate a single game of Craps.
Craps is a game of chance where a player (the shooter) will roll 2 six-sided dice. The sum of the die will determine whether the player (and anyone that has placed a bet) wins immediately, loses immediately, or if the game continues.
If the sum of the first roll of the die is equal to 7 or 11, the player wins immediately.
If the sum of the first roll of the die is equal to 2, 3, or 12, the player has rolled “craps” and loses immediately.
If the sum of the first roll of the die is equal to 4, 5, 6, 8, 9, or 10, the game will continue with the sum becoming the “point.” The object of the game is now for the player to continue rolling the die until they either roll a sum that equals the point or they roll a 7. If the player “makes their point,” they win. If they roll a 7, they lose.
Basic Program Logic
The program will use the random number generator to simulate the rolling of the die. Therefore, the random number generator must be seeded. This is done one time in the program. Use any value for srand that you would like while developing the program – time(0) will give different results while an integer literal will produce the same results every time the program is run.
Next, roll the die by generating two random numbers between 1 and 6. The two numbers should be added together and the sum of the die should be displayed.
If the sum of the die is equal to 7 or 11, the game is over and the player has won. Display a congratulatory message.
If the sum of the die is equal to 2, 3, or 12, the game is over and the player has lost. Display a message indicating the player has lost.
For any other sum, the sum is now the point and the game should continue until the user rolls the point again or rolls a 7. One possible way to do this is:
- Save the sum (the point) in a variable so it can be used for a later comparison
- Display the point
- Create a variable and initialize it to a value of your choice to indicate that the game should continue.
- In a loop that executes as long as the game should continue:
- roll the die and display the sum
- if the sum of the die is the same as the point, display a congratulatory message indicating the player has made their point and they won the game. Also change the variable that controls the loop to indicate the game should no longer continue.
- otherwise, if the sum of the die is 7, display a message that the player has lost the game and change the variable that controls the loop to indicate the game should no longer continue.
Symbolic Constants
The program should use at least three symbolic constants. Some options are:
- an integer for each of the values (2, 3, and 12) that represents craps on the first roll of the die
- an integer that represents the value 7
- an integer that represents the value 11
Program Requirements
- Make and use meaningful variable names.
- Make sure to actually use the symbolic constants that are created.
- Be sure to #include <cstdlib> and <ctime>
- The program MUST be fully documented according to the documentation standards on the course website. Include line documentation. There is no need to document every single line, but logical “chunks” of code should be preceded by a line or two that describes what the “chunk” of code does.
- Make sure that the copy of the program that is handed in uses srand(8) to set the seed value for the random number generator.
- Hand in a copy of the source code (CPP file) using Blackboard.
Output
Some runs of the program follow. Your results probably won’t match these exactly because of the use of the time when seeding the random number generator.
Run 1
The come out roll is 3 Craps! You lost!
Run 2
The come out roll is 6 The point is 6 The roll is 11 The roll is 11 The roll is 8 The roll is 7 Too Bad! You seven'd out and lost!
Run 3
The come out roll is 5 The point is 5 The roll is 8 The roll is 8 The roll is 2 The roll is 3 The roll is 6 The roll is 11 The roll is 11 The roll is 11 The roll is 11 The roll is 9 The roll is 10 The roll is 8 The roll is 10 The roll is 6 The roll is 9 The roll is 8 The roll is 9 The roll is 3 The roll is 2 The roll is 4 The roll is 8 The roll is 4 The roll is 4 The roll is 4 The roll is 5 Congratulation! You rolled your point and won!
Run 4 (srand(8))
The come out roll is 6 The point is 6 The roll is 12 The roll is 10 The roll is 12 The roll is 12 The roll is 5 The roll is 4 The roll is 7 Too Bad! You seven'd out and lost!
Run 5
The come out roll is 7 You won!
Extra Credit
For up to 5 points of extra credit, add code that will allow the player to play the game more than one time. Use a character variable. The user should enter value of ‘y’ or ‘Y’ to indicate they would like to continue playing.
Note about extra credit: the points will ONLY be awarded if the required portions of the assignment work correctly. In other words, don’t take short cuts in the rest of the program because it is assumed that 5 extra points will be awarded.
Extra Credit Output
The come out roll is 6 The point is 6 The roll is 12 The roll is 10 The roll is 12 The roll is 12 The roll is 5 The roll is 4 The roll is 7 Too Bad! You seven'd out and lost! Would you like to play again (y for yes)? Y The come out roll is 4 The point is 4 The roll is 9 The roll is 6 The roll is 11 The roll is 10 The roll is 11 The roll is 4 Congratulation! You rolled your point and won! Would you like to play again (y for yes)? y The come out roll is 7 You won! Would you like to play again (y for yes)? Y The come out roll is 7 You won! Would you like to play again (y for yes)? y The come out roll is 8 The point is 8 The roll is 10 The roll is 7 Too Bad! You seven'd out and lost! Would you like to play again (y for yes)? n