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....
#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;
}
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