P: 8 | I need some help. I am getting an error of: local function definitions are illegal. What does this mean? Can anybody help me out a little? Thank you. //Specification: This program simulates a three //wheeled slot machine. Each wheel will randomly //display three numbers. When the numbers on the //wheels match the user is award points. The Slot //machine requires the user to enter tokens to play. #include #include using std::cout; using std::cin; using std::endl; class slotMachine { private: int wheelA; int wheelB; int wheelC; double payOut; //amount of $ won during the current turn double moneyInMachine; //total amount of $ in the machine double playersBalance; //the amount of $ not yet played double gameCost; //the cost of one pull double moneyPaid; //the money put in by user public: //prototypes slotMachine(); bool displayMenu(void); bool pullHandle(void); void spinWheel(int &); double calculatePayout(); void insertCoin(double ); void displaySpinResults(); int Random(int, int); void displayTotals(); }; int main(void) { //create a slot machine object slotMachine mySlot; //Start the slot machine game //Keep running until the user //decides to quit bool ok = true; while (ok){ ok = mySlot.displayMenu(); } return 0; } slotMachine::slotMachine () { //constructor, set the initial state //of all the properties srand((int) time(0)); moneyInMachine = 100; moneyPaid = 0; payOut = 0; wheelA = 0; wheelB = 0; wheelC = 0; gameCost = 1; } bool slotMachine::displayMenu(void){ //main menu, executes the command selected by the //user or returns a value to terminate game execution //variable int choice = 0; //declare variables char usersChoice = 'E'; bool continueGame = true; //display menu opitions cout << 'Welcome to Las Vegas Casino n'; cout << 'Please choose an option: n'; cout << '(E)nd, (P)ull, P(A)Y, (T)otals'; //get the input cin >> usersChoice; switch (usersChoice){ case 'E': //end game continueGame = false; break; case 'A': //pay continueGame = true; //prompt user to pay cout << 'Please enter $1.00. n' << gameCost << endl; //get input cout << 'Thank you for entering your money. n' << moneyPaid << endl; break; case 'P': //user pulls the handle continueGame = true; if (pullHandle()){ displaySpinResults(); calculatePayout(); break; case 'T': //show the totals continueGame = true; displayTotals(); break; } return continueGame; } bool slotMachine::pullHandle(void){//local function defintions are illegal //checks to see if there is money //given by user then assigns a random value //to each wheel. Deducts the cost of one //pull from the users money. double moneyInMachine = 100; int wheelA = 1; int wheelB = 2; int wheelC = 3; moneyInMachine = moneyInMachine - moneyPaid; cout << 'You have n' << moneyInMachine << endl; return true; } void slotMachine::spinWheel(int &theWheel){//local function definitions are illegal //assign a random value to a wheel int wheelA = 0; int wheelB = 0; int wheelC = 0; wheelA; { wheelA = 1 + rand() % (3 - 1 + 1); } wheelB; { wheelB = 1 + rand() % (3 - 1 + 1); } wheelC; { wheelC = 1 + rand() % (3 - 1 + 1); } } double slotMachine::calculatePayout(){// local function defintions are illegal //decides if the current wheel values merit a //payout and how much that payout should be. //deducts the total payout from the total //amount of money in the machine int jackPot = 1000; int goodJob = 10; int youLose = -5; int wheelA = 0; int wheelB = 0; int wheelC = 0; wheelA wheelB && wheelA wheelC; { cout << 'Jackpot!!!' << jackPot << endl; } wheelA wheelB || wheelA wheelC || wheelB wheelC; { cout << 'Good Job' << goodJob << endl; } jackPot; { moneyInMachine = moneyInMachine + jackPot; } goodJob; { moneyInMachine = moneyInMachine + goodJob; } return moneyInMachine; } void slotMachine::insertCoin(double amount = 0.0){ //local function definitions are illegal //adds to the amount of money paid by the user //adds to the total money in the machine int moneyInMachine = 100; int moneyPaid = 0; moneyInMachine = moneyPaid + moneyInMachine; } void slotMachine::displaySpinResults(){ //displays the value of the three wheels int wheelA = 0; int wheelB = 0; int wheelC = 0; cout << 'First wheel shows: n' << wheelA << endl; cout << 'Second wheel shows: n' << wheelB << endl; cout << 'Third wheel shows: n' << wheelC << endl; } void slotMachine::displayTotals(){ //displays the total money in the machine and the number //of pulls the user has left cout << 'You have this much money left: $' << moneyInMachine << endl; cout << 'You have this many turns left: ' << endl; } int slotMachine::Random(int lowerLimit, int upperLimit) { //returns a random number within the given boundary return 1 + rand() % (upperLimit - lowerLimit + 1); } } |
|
One part is the actual slot machine that only calculates things without caring about the user interface. The other part is the user interface. It gives commands to the slot machine and receives feedback. Splitting the code has the benefit that if you find a bug in the calculations, you only have to search for it in half of the code, since it is.
I am trying to write a simple slot machine program that will return three numbers as the slot icons using a loop. I can get the first part just fine (I think). But I am stuck at converting my icons to intergers or character that I can compare to see if it is a winner or not. Here so far:
I have tried to add the following to my loop without success:
if (c 1 )
Win1 = Win;
if (c 2)
Win2 = Win;
if (c 3)
Win3 = Win;
I was then going to usr the integers Win1, Win2 etc to make my comparisons but it doesn't work. I feel like I am missing something very simple.
- 3 Contributors
- forum4 Replies
- 1,176 Views
- 22 Hours Discussion Span
- commentLatest PostLatest Postby Sky Diploma
Recommended Answers
I am trying to write a simple slot machine program that will return three numbers as the slot icons using a loop. I can get the first part just fine (I think). But I am stuck at converting my icons to intergers or character that I can compare to …
Jump to Post
All 4 Replies
I am trying to write a simple slot machine program that will return three numbers as the slot icons using a loop. I can get the first part just fine (I think). But I am stuck at converting my icons to intergers or character that I can compare to see if it is a winner or not. Here so far:
// slot machine
#include
#include
#include
using namespace std;
int main()
{
int Win1 = 0, Win2 = 0, Win3 = 0;
srand (time(0)); // seed random number generator based on time
/* creating a counter and loop to generate three
random numbers */
int c; // create a counter
for (c = 0; c < 3; c++) //initialize, test and update the counter
{
int random = rand(); // generate random number
int Win = (random % 3) + 1; // constrain random number between 1 and 3
cout << Win << ' ';
}
return 0;
}
I have tried to add the following to my loop without success:
Slot Machine C Visual Studio Software
if (c 1 )
Win1 = Win;
if (c 2)
Win2 = Win;
if (c 3)
Win3 = Win;
I was then going to usr the integers Win1, Win2 etc to make my comparisons but it doesn't work. I feel like I am missing something very simple.
Code tags please:
[code]
// paste code here
Visual Studio Code C
[/code]
Slot Machine Visual Studio
So you win if you get 1 - 2 -3, otherwise you lose? There is more than one way to do this. One way would be to set up a boolean variable called winner
and initialize it to true. Each time through the loop, check to see if the winning number come up. If not, flag winner to false. Any incorrect number that comes up causes winner
to be false, so you'll need to initialize winner
to true before the loop starts, generate your random number inside the loop, then have an if-statement inside the loop that compares that random number to the number needed to win and if they aren't the same, make winner
false. Finally, after the loop, check the winner
variable: