Description of this paper

The program must generate a pseudo-random number between 1 and 100, inclusive




Question;The program must;generate a pseudo-random number between 1 and 100, inclusive. The user will;then be presented with opportunities to guess the number. After each guess, the;program must indicate whether the guess was too high, too low, or correct.;To make the game more;interesting, the user will bet on each number. Initially, the program will give;the user $1000. Each round, prompt the user for a bet. Then prompt for guesses;until the user is correct, or has made 6 wrong guesses. The payoff is;calculated as follows;1. If;the player guesses correctly within the first 6 guesses, the player wins bet /;# guesses. So if the player bet $100 and correctly guessed on the 4th try, the;payoff is $25.;2. If;the player does not guess correctly within the first 6 guesses, the player;loses the amount bet.;Once the round has ended;(either by a correct guess or by using up the 6 guesses), the program must;display the current status (see the sample execution output below for the;minimum required information) and prompt the user to see if he/she wants to;play again. This will continue until the user indicates that they do not want;to play again or until the player runs out of money.;Using functions and random numbers;To help you implement;this program, we have provided function prototypes below. A large part of;your grade on this and all future projects in this course is based on how well;you utilize functions and parameters. You must write and implement the;corresponding functions in your program based on these prototypes. You may add;additional functions if you wish, but there is no need to.;/*;PrintHeading simply prints the;introductory output.;Parameters: initial amount of money;received;*/;void PrintHeading(int money);/*;GetBet prompts for and reads;in a bet. The function performs all;error checking necessary to;insure that a valid bet is read in;and does not return until a;valid bet is entered.;Parameters;money: the amount of money the player currently has;bet;the bet chosen by the user;*/;void GetBet(int money, int&& bet);/*;GetGuess reads in a;guess. The user is not prompted for the guess in;this function. The user only;gets one chance to input a guess value.;Return Value: the value of;the guess if the input is valid;0 if the input guess was not valid;*/;int GetGuess(void);/*;CalcNewMoney determines the;amount of money the player has won or;lost during the last game.;Parameters;money: the amount of money the player had going into the game;bet: the amount the player bet on the;current game;guesses: the number of guesses it took the player to win.;-1 if the player did not guess correctly;Return Value: the new amount;of money the player has;*/;int CalcNewMoney(int money, int bet, int;guesses);/*;PlayAgain prompts the user to;play the game again and reads in a response;using a single character to;represent a yes or no reply.;Error checking is performed;on that response.;Return Value: true if the;user wants to play again;false if the user does not want to play again.;*/;bool PlayAgain(void);/*;PlayGame plays a single game;performing all the necessary calculations;input, and output.;Parameters;money: the amount of money the player has at the start of the game.;Return Value: how much the;player has after the game.;*/;int PlayGame(int money);Generating;Pseudo-Random Numbers;The;function rand() will generate a pseudo-random number between 0 and;RAND_MAX, and was fully discussed in lectures. Because an algorithm;implementing number generation on a computer cannot truly be random, this;function actually computes a complex sequence of numbers that appear to;be random. You are required to use theDrawNum toscalethe value received from rand() into the appropriate range.;You may copy it from this lottery.cpp program;#include /* for standard I/O routines */;#include /* to access the computer's clock */;#include /* needed for rand() and RAND_MAX */;usingnamespace;std;/*;================================================================ */;/* function prototypes for user-defined functions */;int DrawNum;(int), /* prototype for random number */;/* generator function */;/*;================================================================ */;int main ();/* named constants */;constint;START_BALANCE = 10, /* player's starting balance */;constint;WINNINGS = 500, /* what player wins, if he/she does */;constint BET =;1, /* the bet amount required */;constint MIN =;1, /* minimum value to be picked or drawn */;constint MAX =;999, /* maximum value to be picked or drawn */;/* declare variables */;int;numPicked, /* number player picks */;numDrawn, /* number computer draws */;balance;= START_BALANCE, /* start off with this amount */;/* on hand */;betNumber;= 0, /* number of current bet */;bool won =false, /* reset to true if player */;/* does win */;unsignedint seed, /* seeds (initializes) rand() */;/* print an introductory title */;cout;<<"======================================================" << endl;cout;<<" Welcome;to the Mini-Lottery!!!;<< endl;cout;<<"======================================================" << endl;/* get a value for the time from the computer's clock;and with */;/* it call srand to initialize "seed" for;the rand() function */;seed =static_cast (time;(NULL));srand (seed);/* keep playing until either the player runs out of;money */;/* or wins once */;while;((balance != 0) && (!won));/* increment and print bet number */;betNumber++;cout;<< endl <<"This;is bet # " << betNumber;endl;/* decrement balance and get number picked by player;*/;balance;= balance - BET;cout;<<"Pick a number between; << MIN <<" and " << MAX;numPicked;while;((numPicked MAX));cout;numPicked;/*;end of error handling for number picked */;/* get number drawn by computer and print it */;numDrawn;= DrawNum (MAX);cout;<<"Number Drawn was; << numDrawn;endl;/* check for a match */;if;(numPicked == numDrawn);{ /* do match */;won;=true;cout;<<"The numbers match!;You win!" << endl;else /* do NOT match */;cout;<<"Sorry, no;match." << endl;/*;while balance not zero and not won */;/* print out an appropriate closing message */;cout;endl <<"Game over !!!" << endl;if (won);cout;<<"You spent $" << START_BALANCE - balance;<<" to win " << WINNINGS << endl;else;cout;<<"Oops! You\'re BROKE!;Better luck next time!;<< endl << endl;return (0);/* end of main function */;/* ================================================================;*/;/*******************************/;/* function;drawNum */;/*******************************/;int DrawNum;(int max) /* the maximum number to generate */;/* The standard function rand returns an integer between 0;and;RAND_MAX, and;requires no parameter. Our function;drawNum calls;rand and does the;necessary calculations to convert the number;rand returns to a;value which falls between 1 and max, which is;what we need;here. Note RAND_MAX is 32767 in many;systems.;This is how the;function works;0 <= rand();<= RAND_MAX we know how rand() behaves;<= rand() * MAX/(RAND_MAX + 1);multiplying by MAX and;<= RAND_MAX * MAX/(RAND_MAX + 1) dividing by RAND_MAX + 1;= MAX;* (RAND_MAX/(RAND_MAX + 1));MAX;1 <= 1 +;rand() * MAX/(RAND_MAX + 1) < MAX + 1;1 <= the;above truncated to an int <= MAX;*/;{ /* function drawNum */;double x =;RAND_MAX + 1.0, /* x and y are both auxiliary */;int y, /* variables used to do the */;/* calculation */;y =static_cast (1;+ rand() * (max / x));return (y), /* y contains the result */;/* function drawNum */;/*;End of PROGRAM Lottery;*/;/*;================================================================ */;Additionally, the;sequence of numbers generated will be the same every time you run your program;unless you seed the number generator, that is, give it a;random starting value. Traditionally, the current time on the computer is used.;To do this, as the first line (after variable declarations) in main, include;the following code;srand(static_cast (time(NULL)));This function only needs;to be called once during your entire program. To use these functions;you will need to #include the appropriate header files.;Operation Specifications;? Your program must deal;with incorrect input. For example, when prompted for a bet, if the user does;not enter an integer, you must display an appropriate message and re-prompt the;user for input. The only situation where you should not re-prompt the user;after incorrect input is during the "guess a number" prompt. If the;user does not guess a valid integer or does not enter an integer, the guess;will be considered wrong. Your program may display either the "Too;high" or "Too low" message in this case. The invalid guess must;still count as a guess.;? When;incorrect input is entered, your program must then ignore everything entered up;until the newline character.;? If;the payoff is not an integer (i.e. 100 / 3), you must truncate the decimal;portion.;? Your;program should not be case sensitive. That is, answering the "play;again" question with either an upper case or a lower case letter is;acceptable.;? The;bet cannot be for more money than the player currently has and must be a;positive integer.;? If;the user does not guess correctly within the given 6 guesses, your program must;print the correct answer in addition to the usual status information.;Example Run;A sample execution of;the program is below. This output is very basic just to show you the;fundamental elements. You must use your creativity to make your own;output look nicer and more spaced.;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=;Welcome to the high-low betting game.;You have $1000 to begin the game.;Valid guesses are numbers between 1 and 100.;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=;Please enter a bet: 500;Guess 1: 50;Too low...;Guess 2: 75;Too high...;Guess 3: 62;Too low...;Guess 4: 67;Too high...;Guess 5: 63;Correct!;You just won $100You have $1100You have won 100% of the;games you played;Play again? y;Please enter a bet: abc;That isn't a valid bet!;Please enter a bet: -1;That isn't a valid bet!;Please enter a bet: 285;Guess 1: how can i win???;Too low...;Guess 2: 100011;Too low...;Guess 3: -1Too low...;Guess 4: 52;Too low...;Guess 5: 80;Too high...;Guess 6: 70;Too low...;Sorry... the correct answer was 78;You lost $285;You have $815;You have won 50% of the games you played;Play again? n;Thanks for playing..;Use Of Data Structures;This project doesnotrequire the use of any;data structures and you should not use any. The only classes you may use;are the standard string class and standard iostream classes.


Paper#36617 | Written in 18-Jul-2015

Price : $44