Solved

# How to wirte a craps program in C++ using abstract data types?

Posted on 2009-02-11

Craps is a dice game. To play a game, all players first place their bets on the table.

A player then rolls the dice (perhaps several times to determine the outcome) and

the bets are collected or paid depending on the outcome of the dice rolls. A game

can be won or lost on the first roll (if specific numbers come up), or several rolls

may be necessary. The rules of the game are simple:

" On the first roll,

o If the roll is seven (7) or eleven (11), the game is won.

o If the roll is two (2), three (3) or twelve (12), the game is lost.

o If the roll is any other number, that number becomes ``the point''

and further rolls are necessary to determine the outcome.

" After the point has been determined, subsequent rolls determine the

outcome of the game. For each roll

o If the roll is a seven (7), the game is lost.

o If the roll duplicates the point, the game is won.

o If the roll is any other number, the dice must be rolled again in an

attempt to determine the outcome.

It may take several rolls of the dice to determine the outcome of a game. The

longer it takes to duplicate the point, the more money is on the table.

A player is allowed to bet any amount before each roll of the dice. In this project,

we will assume a simplified betting system where the player can only bet on a win or

loss of the game. If a win, the house returns to the player the total bet and an

additional amount equal to the total bet. If a loss, the house keeps the players bet.

I need to simulate the playing of this game. Over a large number of games, gather statistics

that can be used to answer the following questions:

1. What is the approximate probability of winning this game?

2. What is the approximate probability that a player will win the game on the

first roll of the dice?

3. What is the approximate probability that a player will lose the game on the

first roll of the dice?

4. Assuming that the player starts with $10,000, and bets one dollar before

each roll (i.e, the strategy shown in the table above), plot the decrease or

increase of the player's money over time.

5. Suppose a player initially bets one dollar, but doubles his bet each time

before the dice is rolled until a win or loss is obtained. Again assume that

the player starts with $10,000, and plot the decrease or increase of the

player's money over time.

6. Plot a histogram of the dice rolls over the course of your simulation to

insure that your dice simulation acts correctly (histogram appropriately

labeled, of course).

For the random dice roll, you should use rand and srand.