| | |
"Craps", Game Help
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
I've been studying VC++ for about 2 months, and I was working on my first game from a book (Game Programming All In One)
The game is 'Craps', it's a dice game. Anyways, I've had a few prolems with the codeing, can someone help me? (Windows 32 Console)
Here is the game....
Code:
I've had a few problems with this book already, it's about 2 years old or so, it uses an older version of c++ and there has been some
modifications over those few years. ANYWAYS!!! I need help, here are the errors!
c:\Projects\Craps\Craps.cpp(151): error C2065: 'MoneyEarned' : undeclared identifier
c:\Projects\Craps\Craps.cpp(95): error C2601: 'DoDiceThrow' : local function definitions are illegal
c:\Projects\Craps\Craps.cpp(123): error C2601: 'DoMoneyCalc' : local function definitions are illegal
c:\Projects\Craps\Craps.cpp(26): warning C4244: '=' : conversion from 'unsigned long' to 'short', possible loss of data
__________________
The game is 'Craps', it's a dice game. Anyways, I've had a few prolems with the codeing, can someone help me? (Windows 32 Console)
Here is the game....
Code:
C++ Syntax (Toggle Plain Text)
#include <iostream> // Includeing Headers #include <stdlib.h> #include <time.h> using namespace std; // Language // Global Variables void ShowIntroScreen (void), ShowInformation (unsigned long Money); short GetBet (void), DoDiceThrow (void); unsigned short DoMoneyCalc (short Dice, short Bet, short BetMoney); unsigned long GetAmount (void); main (void) { unsigned long MoneyEarned, Money; short DiceValue, Bet, BetMoney; ShowIntroScreen (); Money = 1000; do // Loop Actions { ShowInformation (Money); Bet = GetBet (); BetMoney = GetAmount (); DiceValue = DoDiceThrow (); MoneyEarned = DoMoneyCalc (DiceValue, Bet, BetMoney); Money -= BetMoney; if (MoneyEarned == 0 ) { cout << "You have lost. The number was: " << DiceValue << endl << endl; } else { cout << "You won " << MoneyEarned - BetMoney; cout << " dollars. Number was: " << DiceValue; cout << endl << endl; Money += MoneyEarned; } } while (Money > 100); cout << "Game Over. Keep $" << Money << " for the ride home\n"; return 0; } void ShowIntroScreen (void) // Rules and Start Up { cout << " Welcome to Craps 1.0" << endl << endl; cout << " Here are the rules:" << endl << endl; cout << "You have 1000 dollars to start gambling. "; cout << endl << endl; cout << "There are three types of bets. You can bet on: " << endl << endl; cout << " - 2 and 12 which will give you the ratio of 5 to 1 if you win.\n"; cout << " - 4 and 10 which will give you the ratio of 2.5 to 1 if you win.\n"; cout << " - 6 and 8 which will give you the ration of 1.5 and 1 if you win."; cout << endl << endl; cout << "The minimum amount of money you can bet is 10 dollars and \n" " the highest amount of money you can bet is 100."; cout << endl << endl; cout << "Have fun playing!"; cout << endl << endl; } void ShowInformation (unsigned long Money) // Money Display { cout << "You have : " << Money << " dollars."; cout << endl << endl; } short GetBet (void) // Gets Bet Type { unsigned short BetType; cout << "Enter a type of bet ( 1 = '6/8', 2 = '4/10', 3 = '2/12': "; cin >> BetType; if ((BetType == 1) || (BetType == 2) || (BetType == 3)) { return BetType; } else { return 1; } short DoDiceThrow (void) // Randomized Numbers { short DiceValue; srand (time (NULL)); DiceValue = (rand () % 11) + 2; if ((DiceValue == 4 ) || (DiceValue == 10)) { srand (time (NULL)); DiceValue == (rand () % 12) + 1; } if ((DiceValue == 2) || (DiceValue == 12)) { srand (time (NULL)); DiceValue = (rand () % 12) + 1; if ((DiceValue == 2) || (DiceValue == 12)) { srand (time (NULL)); DiceValue = (rand () % 12) + 1; } } return DiceValue; } // Calculating Data unsigned short DoMoneyCalc (short Dice, short Bet, short BetMoney) { unsigned long MoneyEarned = 0; switch (Bet) case 1: if ((Dice == 6) || (Dice == 8)) { MoneyEarned = BetMoney * 1.5; } break; break; case 2: if ((Dice == 10) || (Dice == 4)) { MoneyEarned = BetMoney * 2.5; } break; break; case 3: if ((Dice == 3) || (Dice == 12)) { MoneyEarned = BetMoney * 5; } break; default; MoneyEarned = 0; break; } return MoneyEarned; } unsigned long GetAmount (void) { unsigned short BetAmount; cout << "Enter amount to bet (min 10 - max 100): "; cin >> BetAmount; if (BetAmount < 10) { BetAmount = 10; } if (BetAmount > 100) { BetAmount = 100; } return BetAmount; }
modifications over those few years. ANYWAYS!!! I need help, here are the errors!
c:\Projects\Craps\Craps.cpp(151): error C2065: 'MoneyEarned' : undeclared identifier
c:\Projects\Craps\Craps.cpp(95): error C2601: 'DoDiceThrow' : local function definitions are illegal
c:\Projects\Craps\Craps.cpp(123): error C2601: 'DoMoneyCalc' : local function definitions are illegal
c:\Projects\Craps\Craps.cpp(26): warning C4244: '=' : conversion from 'unsigned long' to 'short', possible loss of data
__________________
:evil::cry::evil::cry::evil::cry::evil::cry::evil:
•
•
Join Date: Sep 2004
Posts: 19
Reputation:
Solved Threads: 0
Well I got it to compile and run.
Here's the errors that I found:
Your function prototypes didn't match the function's return type in it's code. (Aka, return a short but prototype says it returns void.)
You didn't close all functions with braces. Forgot a few :-P
You closed the switch statement with a brace but didn't open with one.
Other than that it's all good. One thing that I would change, not bad code just style, is to not use tab in the parameter list of a function and don't use it inside strings unless needed.
Here's the output from the console and I think you'll see what I mean about tabs in strings. It makes it hard to read.
Other than that, nice job overall!
Here's the revised code:
Here's the errors that I found:
Your function prototypes didn't match the function's return type in it's code. (Aka, return a short but prototype says it returns void.)
You didn't close all functions with braces. Forgot a few :-P
You closed the switch statement with a brace but didn't open with one.
Other than that it's all good. One thing that I would change, not bad code just style, is to not use tab in the parameter list of a function and don't use it inside strings unless needed.
Here's the output from the console and I think you'll see what I mean about tabs in strings. It makes it hard to read.
C++ Syntax (Toggle Plain Text)
Welcome to Craps 1.0 Here are the rules: You have 1000 dollars to start gambling. There are three types of bets. You can bet on: - 2 and 12 which will give you the ratio of 5 to 1 if you win. - 4 and 10 which will give you the ratio of 2.5 to 1 if you win. - 6 and 8 which will give you the ration of 1.5 and 1 if you win. The minimum amount of money you can bet is 10 dollars and the highest amount of money you can bet is 100. Have fun playing! You have : 1000 dollars. Enter a type of bet ( 1 = '6/8', 2 = '4/10', 3 = '2/12':
Other than that, nice job overall!
Here's the revised code:
C++ Syntax (Toggle Plain Text)
#include <iostream> // Includeing Headers #include <stdlib.h> #include <time.h> using namespace std; // Language // Global Variables void ShowIntroScreen(void); void ShowInformation(unsigned long Money); short GetBet(void); short DoDiceThrow(void); unsigned short DoMoneyCalc(short Dice, short Bet, short BetMoney); unsigned long GetAmount(void); void main(void) { unsigned long MoneyEarned, Money; short DiceValue, Bet, BetMoney; ShowIntroScreen(); Money = 1000; do // Loop Actions { ShowInformation (Money); Bet = GetBet(); BetMoney = GetAmount(); DiceValue = DoDiceThrow(); MoneyEarned = DoMoneyCalc(DiceValue, Bet, BetMoney); Money -= BetMoney; if(MoneyEarned == 0 ) { cout << "You have lost. The number was: " << DiceValue << endl << endl; } else { cout << "You won " << MoneyEarned - BetMoney; cout << " dollars. Number was: " << DiceValue; cout << endl << endl; Money += MoneyEarned; } } while (Money > 100); cout << "Game Over. Keep $" << Money << " for the ride home\n"; } void ShowIntroScreen (void) // Rules and Start Up { cout << " Welcome to Craps 1.0" << endl << endl; cout << " Here are the rules:" << endl << endl; cout << "You have 1000 dollars to start gambling. "; cout << endl << endl; cout << "There are three types of bets. You can bet on: " << endl << endl; cout << " - 2 and 12 which will give you the ratio of 5 to 1 if you win.\n"; cout << " - 4 and 10 which will give you the ratio of 2.5 to 1 if you win.\n"; cout << " - 6 and 8 which will give you the ration of 1.5 and 1 if you win."; cout << endl << endl; cout << "The minimum amount of money you can bet is 10 dollars and \n" " the highest amount of money you can bet is 100."; cout << endl << endl; cout << "Have fun playing!"; cout << endl << endl; } void ShowInformation (unsigned long Money) // Money Display { cout << "You have : " << Money << " dollars."; cout << endl << endl; } short GetBet (void) // Gets Bet Type { unsigned short BetType; cout << "Enter a type of bet ( 1 = '6/8', 2 = '4/10', 3 = '2/12': "; cin >> BetType; if ((BetType == 1) || (BetType == 2) || (BetType == 3)) { return BetType; } else { return 1; } } short DoDiceThrow (void) // Randomized Numbers { short DiceValue; srand (time (NULL)); DiceValue = (rand () % 11) + 2; if ((DiceValue == 4 ) || (DiceValue == 10)) { srand (time (NULL)); DiceValue == (rand () % 12) + 1; } if ((DiceValue == 2) || (DiceValue == 12)) { srand (time (NULL)); DiceValue = (rand () % 12) + 1; if ((DiceValue == 2) || (DiceValue == 12)) { srand (time (NULL)); DiceValue = (rand () % 12) + 1; } } return DiceValue; } // Calculating Data unsigned short DoMoneyCalc (short Dice, short Bet, short BetMoney) { unsigned long MoneyEarned = 0; switch (Bet) { case 1: if ((Dice == 6) || (Dice == 8)) { MoneyEarned = BetMoney * 1.5; } break; case 2: if ((Dice == 10) || (Dice == 4)) { MoneyEarned = BetMoney * 2.5; } break; case 3: if ((Dice == 3) || (Dice == 12)) { MoneyEarned = BetMoney * 5; } break; default: MoneyEarned = 0; break; } return MoneyEarned; } unsigned long GetAmount (void) { unsigned short BetAmount; cout << "Enter amount to bet (min 10 - max 100): "; cin >> BetAmount; if (BetAmount < 10) { BetAmount = 10; } if (BetAmount > 100) { BetAmount = 100; } return BetAmount; }
If you don't know it, learn it ;)
•
•
Join Date: Mar 2007
Posts: 35
Reputation:
Solved Threads: 1
-1
#4 2 Days Ago
I saw the following in your code:
- You're missing the closing parenthesis of GetBet(void)
- You're also missing the opening parenthesis on the switch(Bet) in DoMoneyCalc()
- You are using break; break; in the switch(Bet) statement, you only need 1 break;
- Also in the switch(Bet) you have default; but you need to use default: (notice the : )
You should add main() type int
- You're missing the closing parenthesis of GetBet(void)
- You're also missing the opening parenthesis on the switch(Bet) in DoMoneyCalc()
- You are using break; break; in the switch(Bet) statement, you only need 1 break;
- Also in the switch(Bet) you have default; but you need to use default: (notice the : )
You should add main() type int
•
•
Join Date: Mar 2007
Posts: 35
Reputation:
Solved Threads: 1
C++ Syntax (Toggle Plain Text)
#include <iostream> // Includeing Headers #include <stdlib.h> #include <time.h> using namespace std; void ShowIntroScreen(void), ShowInformation(double Money); short GetBet(void), DoDiceThrow(void), GetAmount(void); double DoMoneyCalc(short Dice, short Bet, short BetMoney); int main(void){ double MoneyEarned, Money; unsigned short BetMoney; short DiceValue, Bet; ShowIntroScreen(); Money = 1000; do{ ShowInformation(Money); Bet = GetBet(); BetMoney = GetAmount(); DiceValue = DoDiceThrow(); MoneyEarned = DoMoneyCalc(DiceValue, Bet, BetMoney); Money -= BetMoney; if(MoneyEarned == 0){ cout << "You have lost. The number was: " << DiceValue << endl << endl; } else{ cout << "You won " << MoneyEarned - BetMoney; cout << " dollars. Number was: " << DiceValue; cout << endl << endl; Money += MoneyEarned; } } while (Money > 100); cout << "Game Over. Keep $" << Money << " for the ride home\n"; return 0; } void ShowIntroScreen(void){ // Rules and Start Up cout << " Welcome to Craps 1.0" << endl << endl; cout << " Here are the rules:" << endl << endl; cout << "You have 1000 dollars to start gambling. "; cout << endl << endl; cout << "There are three types of bets. You can bet on: " << endl << endl; cout << " - 2 and 12 which will give you the ratio of 5 to 1 if you win.\n"; cout << " - 4 and 10 which will give you the ratio of 2.5 to 1 if you win.\n"; cout << " - 6 and 8 which will give you the ration of 1.5 and 1 if you win."; cout << endl << endl; cout << "The minimum amount of money you can bet is 10 dollars and \n" " the highest amount of money you can bet is 100."; cout << endl << endl; cout << "Have fun playing!"; cout << endl << endl; } void ShowInformation(double Money){ // Money Display cout << "You have : " << Money << " dollars."; cout << endl << endl; } short GetBet(void){ // Gets Bet Type unsigned short BetType; cout << "Enter a type of bet ( 1 = '6/8', 2 = '4/10', 3 = '2/12': "; cin >> BetType; if((BetType == 1) || (BetType == 2) || (BetType == 3)) return BetType; else return 1; } short DoDiceThrow(void){ // Randomized Numbers short DiceValue; srand((unsigned) time(NULL)); DiceValue = (rand() % 11) + 2; if((DiceValue == 4 ) || (DiceValue == 10)){ srand((unsigned) time (NULL)); DiceValue = (rand () % 12) + 1; } if((DiceValue == 2) || (DiceValue == 12)){ srand((unsigned) time (NULL)); DiceValue = (rand () % 12) + 1; if((DiceValue == 2) || (DiceValue == 12)){ srand((unsigned) time (NULL)); DiceValue = (rand () % 12) + 1; } } return DiceValue; } double DoMoneyCalc(short Dice, short Bet, short BetMoney){ double MoneyEarned = 0; switch(Bet){ case 1: if((Dice == 6) || (Dice == 8)){ MoneyEarned = static_cast<double>(BetMoney) * 1.5; } break; case 2: if((Dice == 10) || (Dice == 4)){ MoneyEarned = static_cast<double>(BetMoney) * 2.5; } break; case 3: if((Dice == 3) || (Dice == 12)){ MoneyEarned = static_cast<double>(BetMoney) * 5; } break; default: MoneyEarned = 0; break; } return MoneyEarned; } short GetAmount(void){ unsigned short BetAmount; cout << "Enter amount to bet (min 10 - max 100): "; cin >> BetAmount; if(BetAmount < 10){ BetAmount = 10; } if(BetAmount > 100){ BetAmount = 100; } return BetAmount; }
Last edited by Tales; 2 Days Ago at 9:35 pm.
![]() |
Similar Threads
- Help in "Snake" game using C programming for the AVR (C)
- need help correcting "blackjack" c++ game (C++)
- google "keyword" question (Search Engine Optimization)
- how to make maze game using "gotoxy" & getch? (C++)
- Craps, game help! (C++)
- Cannot Uninstall Trial Version of Pinball Game "The Tomb." (Windows NT / 2000 / XP)
Other Threads in the C++ Forum
- Previous Thread: Confused about my pseudocodes
- Next Thread: printf() a templated type T
| Thread Tools | Search this Thread |
api array based beginner binary bitmap c++ c/c++ calculator char char* class classes code coding compile compiler console conversion count database delete deploy desktop developer directshow dll download dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linux list loop looping loops map math matrix memory multiple news node number numbertoword output parameter pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct temperature template templates text text-file tree url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets





