Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

DocViewer Page of 5 Zoom Pages Week 7 Assignments Week 7: Scope and Classes Instructions Complete the following assignments. Copy and paste your finished code

DocViewer

Page

of 5

Zoom

Pages

Week 7 Assignments

Week 7: Scope and Classes

Instructions

Complete the following assignments. Copy and paste your finished code into a Word document, clearly

identifying which assignment it is. Also, capture the output of the program and paste that into the Word

document. If there are questions to be answered, put the answers after the output. When you complete all

three of this weeks assignments, save the document as

yourLastName_

GSP115_W7_Assignments.docx.

Submit it.

1. Debugging Challenge

You should be busy designing and writing your expansion to the Course Project, so this weeks

assignment will be a debugging challenge. We have revised the slot machine code to make the payouts

easier to change, but a lot of bugs were created in the processboth compile time and run-time bugs.

Your job is to get the code running correctly. As before, the code may look like its working but could still

have the occasional bug that only rarely shows up. You will only be held responsible for bugs that cause

a problem that can be detected. All other bugs will be declared as features or somebody elses problem in

honor of an age-old computer game development tradition.

Here are some clues.

You shouldnt see any blank symbols.

There are only three bugs.

This version of the slot machine gets its payout table from a text file. The text file is a series of four

numbers, such as 2, 2, 2, and 10. The first three are symbol numbers, and they match the enum

numbers. In this case, 2 is Orange. The last number is the payout, so the set of numbers can be

interpreted as Orange, Orange, Orange pays out 10. As a result, you can change the pay out by changing

the table. However, to save space, payouts for the Cherry are hard coded in to the check4Win function.

This was a short cut, but the Cherry payouts could have been set in the text file. In case you havent

Week 7 Assignments

already figured it out, you will need to create the text file and put it in the same folder as your main.cpp

file. Here is a copy of the text in the text file this program was tested with.

0 0 0 1 1 1 1 10 2 2 2 15 3 3 3 20 4 4 4 40 5 5 5 200 4 4 2 25 4 4 3 30

Here is the code.

// Week 7 Assignment-1

// Description:

//----------------------------------

//**begin #include files************

#include // provides access to cin and cout

#include

#include

#include

#include

#include

//--end of #include files-----------

//----------------------------------

using namespace std;

//----------------------------------

//**begin global constants**********

// number of positions on a reel (10)

const int reelPositions = 11;

// create enum for symbols

enum symbol

{

Lemon, Cherry, Orange, Bell, Bar, Jackpot

};

// define a struct for slot machine wheel

struct Wheel

{

array symbols;

array eSymbols;

int position;

string selected;

};//--end of global constants---------

//----------------------------------

//**begin function prototypes*******

Week 7 Assignments

void loadWinSheet(vector > &);

int check4Win(vector , vector > &, int);

//void createSlotMachine(array &);

//--end of function prototypes------

//----------------------------------

//**begin main program**************

int main()

{

// seed random number generator

srand(time(NULL));

// create the payout table

// define a vector for the payout table

vector > winSheet;

loadWinSheet(winSheet);

//create an array of three slot machine wheels

array slotMachine =

{

{

{

{"Orange", "Cherry", "Orange", "Lemon", "Orange", "Bar", "Lemon", "Bell", "Jackpot",

"Bell"},

{Orange, Cherry, Orange, Lemon, Orange, Bar, Lemon, Bell, Jackpot, Bell},

0,"Orange"

},

{

{"Bell", "Lemon", "Orange", "Bar", "Jackpot", "Bar", "Lemon", "Cherry", "Jackpot", "Bell"},

{Bell, Lemon, Orange, Bar, Jackpot, Bar, Lemon, Cherry, Jackpot, Bell},

1,"Lemon"

},

{

{"Cherry", "Lemon", "Bar", "Lemon", "Orange", "Orange", "Lemon","Cherry", "Jackpot",

"Bell"},

{Cherry, Orange, Bar, Lemon, Orange, Orange, Lemon, Cherry, Jackpot, Bell},

3,"Bar"

}

}

};

bool gameOn = true;

int thePot = 100;

bet = 1;

bool winner = false;

int winnings = 0;

char checkKey =' ';

vector combo;

Week 7 Assignments

cout << "Hit 'enter' to bet. Hit 'space' and 'enter' to quit." << endl;

while (gameOn)

{

for (auto &s: slotMachine)

{

s.position =(s.position + rand()%reelPositions)%reelPositions;

s.selected = s.symbols[s.position];

cout << setw(10) << left << s.selected.c_str() ;

combo.push_back(s.eSymbols[s.position]);

}

winnings = check4Win( combo, winSheet, -bet);

if (winnings > 0) cout << "You win " << winnings << "! ";

thePot += winnings;

cout << "You now have $" << thePot << endl;

combo.clear();

cout << endl;

if (thePot <= 0) gameOn = false;

cin.get(checkKey);

if (checkKey != ' ') gameOn = false;

}

while (!cin.get()){};

if (winner) cout << "You walk away a winner." << endl;

else if (thePot > 0) cout << "Good bye." << endl;

else cout << "You have lost all your money." << endl;

// Wait for user input to close program when debugging.

cin.get();

return 0;

}

//--end of main program-------------

//----------------------------------

//**begin function definitions******

// loads the pattern payout table from a text file

void loadWinSheet(vector > &pT)

{

stringstream myStream;

ifstream inFile;

string myString;

array combo;

int pay;

inFile.open("paytable.txt");

if (inFile.is_open())

{

while ( getline (inFile,myString) )

{

myStream << myString;

Week 7 Assignments

}

inFile.close();

}

while (!myStream.eof())

{

myStream >> combo[0] >> combo[1] >> combo[2] >> combo[3];

pT.push_back(combo);

}

return;

}

// Check for winning patterns

int check4Win(vector pattern, vector > &pT, int theBet)

{

for(auto p: pT)

{

if (((pattern[0] == p[0]) && (pattern[1] == p[1]) ) && (pattern[2] == p[2])) return p[3];

if ((pattern[1] == Cherry) && (pattern[2] == Cherry)) return 3;

if (pattern[2] == Cherry) return 1;

}

return -theBet;

}

//--end of function definitions------

//----------------------------------

Annotations

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Mastering Influxdb Database A Comprehensive Guide To Learn Influxdb Database

Authors: Cybellium Ltd ,Kris Hermans

1st Edition

B0CNGGWL7B, 979-8867766450

More Books

Students also viewed these Databases questions

Question

Evaluate three pros and three cons of e-prescribing

Answered: 1 week ago

Question

What were your most important educational experiences?

Answered: 1 week ago

Question

Which personal relationships influenced you the most?

Answered: 1 week ago