Return to site

Slot Machine C Visual Studio

broken image


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:





broken image