/*********************************************************** * Author: Brian G. Smith * Date Created: 10/09/14 * Last Modification Date: 10/09/14 * Filename: numGuess.cpp * * Overview: This is a two player number guessing game. It outputs to the user to enter a secret number, * and inputs the users secret number into a variable. It then loops and outputs to the user how many guesses they have, * how many guesses they have left, tells them whether they are too high or low/correct, and changes the range of numbers * to reflect the effect that the user's newest guess had on the range of valid numbers. The program then tells the second * user whether they guessed the number correctly or ran out of guesses. If they are successful the program will tell them so, * otherwise the program should tell them what the secret number was and how close their guess was. * Finally, it should determine whether or not the user wants to play again. * * Input: * Number of coupons earned. * * Output: * Outputs the number of coupons entered. The program also outputs the * number of candy bars and gumballs purchased followed by the remaining number of coupons. * *************************************************************/ #include <iostream> using namespace std; /************************************************************** * * Entry: None * * Exit: Returns '0' to end the function, and subsequently the * program. * * Purpose: The main function is a special c++ function that is * initiated first, regardless of where the function is located in * the code. * ****************************************************************/ int main() { int number; //Player one's secret number. int guess; //Player two's guess. int tries = 5; int min = 1; int max = 10; // dsmith - The closest guess needs to start // off as the max so you can have a good base // to start with. int closestGuess = max; char again; do { cout << "Player one, please enter a number between one and ten: " << endl; cin >> number; cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; do { cout << "Player two, please guess a number between " << min << " and " << max << " ." << " You have " << tries << " tries." << endl; cin >> guess; if(guess == number) { cout << "That is correct!" << endl; // dsmith - Need to exit the while loop because the // player has already guessed the correct number. break; } else if(guess < number) { tries--; // dsmith - If player two runs out of tries, // you need to present a new message and exit // the while loop if(tries == 0) { cout << "Player two, womp womp, the number was " << number << endl; cout << "Player two, your closest guess was " << closestGuess << endl; break; } else { // dsmith - We need to capture the closest guess. // Note how we are using the absolute value to determine // if we get a better guess this time round. if(abs(guess - number) < closestGuess) { closestGuess = guess; } cout << "The number is higher!" << endl; } } else if(guess > number) { tries--; if(tries == 0) { cout << "Player two, womp womp, the number was " << number << endl; cout << "Player two, your closest guess was " << closestGuess << endl; break; } else { if(abs(guess - number) < closestGuess) { closestGuess = guess; } cout << "The number is lower!" << endl; } } } while(tries > 0 || guess == number); cout << "Would you like to play again? y/n" << endl; cin >> again; } while(again == 'y'); return 0; }