Craps game

I'm trying to get the game below to work with 2 players. It's setup the way I need it (even the entering the numbers for the die instead of using a rand function(crazy teacher)) I just can't figure out how to make it two players. Also I'm supposed to use the rand function for one die to determine which player goes first. Heres what I've got.
Any help would really be appreciated.
================================================================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/* header files */
#include <iostream>
#include <cstdlib>									// contains function prototypes for functions srand and rand
#include <ctime>									// contains prototype for function time
using namespace std;

// enumeration constants represent game status
enum Status { CONTINUE, WON, LOST };

int rollDice( void );											
void playGame ( Status & gameStatus );
void displayWonOrLost ( Status, int &, int & );
int main()
{
int BankBalance = 1000;
int Wager = 100;
int count;
char Response;
const int player1= 1;
const int player2= 2;
Status gameStatus;	// can contain CONTINUE, WON or LOST
 
 
cout << " Player 1 wagers $ "<< Wager << endl;
cout << " Player 1 Is rolling the DICE " << endl;
 
while ( Wager <= BankBalance ) {
cout << "Continue with current wager (Y) or end game (E)?" << endl;
cin >> Response;
 
switch ( Response ) {
 
case 'Y':
case 'y':
playGame( gameStatus );
displayWonOrLost ( gameStatus, BankBalance, Wager );
break;
 
case 'E':
case 'e':
cout << "Your final balance is " << BankBalance << endl;
cout << "Thank you, come again!" << endl;
 
return (0);
break;
 
default:
cout << "Incorrect Response. Please try again!" << endl;
break;
 
} // end switch
 
} 
 
if ( BankBalance == 0 )
cout << "Sorry, No money remaining!" << endl;
 
return (0); // indicates successful termination
 
} // end main
 
void displayWonOrLost ( Status gameStatus, int & balance, int &
wager )
{
// display won or lost message
 
if ( gameStatus == WON ) {
balance += wager;
cout << "Player  wins, new balance is " << balance << endl;
}
else {
balance -= wager;
cout << "That's craps! Player 1 loses " << endl;
cout << "Player 1 has $" << balance << endl;
 
} // End display won or lost message
}
 
void playGame (Status & gameStatus)
{
int sum;
int myPoint;

sum = rollDice(); // first roll of the dice
 
// determine game status and point based on sum of dice
switch ( sum )
{ 
// win on first roll
case 7:
case 11:
gameStatus = WON;
break;
 
// lose on first roll
case 2:
case 3:
case 12:
gameStatus = LOST;
break;
 
// remember point
default:
gameStatus = CONTINUE;
myPoint = sum;
cout << "Point is " << myPoint << endl;
break; // optional
 
} // end switch
 
// while game not complete ...
while ( gameStatus == CONTINUE ) {
sum = rollDice(); // roll dice again
 
// determine game status
if ( sum == myPoint ) // win by making point
gameStatus = WON;
else
if ( sum == 7 ) // lose by rolling 7
gameStatus = LOST;
 
} // end while
 
} // end playGame
 
// roll dice, calculate sum and display results
int rollDice( void )
{
int die1;
int die2;
int workSum;
cout<<"Please enter a value for die 1: ";
cin>>die1;
cout<<"please enter a value for die 2: ";
cin>>die2;
workSum = die1 + die2; // sum die1 and die2
 
// display results of this roll
cout << "Player rolled " << die1 << " + " << die2
<< " = " << workSum << endl;
 
 
return workSum; // return sum of dice
 
} // end function rollDice  

Last edited on
Next time, use [code][/code] tags. Also...what exactly do you want help with...?
I'm trying to make it work for two players... also I need a randomized roll of 1 die to determine which player goes first.
Well, you could modify you play_game() and change your int main() to call a function called bet() and add an extra parameter to both of those which is the player that is rolling/betting etc.
That helps a little... I still don't understand how to go about implementing this in the program. I really don't know much about c++ and have had the worst teacher of my college life in this class. I'm probally going to fail the class if I don't ace this. I'm sorry I'm so ignorant but your help is really appreciated.
That sucks :/

Anyway, I was thinking of something like this (you can basically copy/paste some of your stuff around where it fits):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void bet(/*whatever type you want to use to reference the player*/);
void play_game(/*...*/);
void roll(/*same*/);

int main() {
     //delcare vars for p1 and p2
    cout << "Welcome to craps for 2P" << endl;
    while(/*they don't want to exit*/) {
        bet(player1); //this function will get the betting data for player one
        play_game(player1); //roll the dice, etc
        bet(player2);
        play_game(player2);
    }
}

bet() {
//do betting
}
play_game() {
    roll();
    //decide if they won etc
}
Last edited on
Topic archived. No new replies allowed.