C++ Guessing Game structing
8/28/2014 Laboratory 01: Guessing Game
http://mboshart.dyndns.org/boshart/2111Labs/Lab01.html 1/3
Laboratory 01: Guessing Game Download the following files and place them in your working directory:
Starting code for this lab:
Lab01Files.zip //provided, completed files, refer to header files for method signatures PlayerGuessDriver.cpp //most of the work is in this file range.txt //contains the two integers that define the range for the secret number build.bat //convenience file for compiling and linking
Guessing Game
In this lab, you will write a simple guessing game. The computer will generate a random integer within a valid specified range, inclusive (min, max) read in from a text file. The user then tries to guess the generated secret number. If the guess is not correct, the user is told whether they are too high or too low. When the secret number has been correctly guessed, the total number of guesses required is reported. The user is then asked if they want to play again.
You will need to use my String, ReadFile, Keyboard, and Random structs to complete this lab. To use these structs, you can refer to the method signatures in the header files for each struct.
#include "Text.h" #include "ReadFile.h" #include "Random.h" #include "Keyboard.h"
Complete the following methods:
int getSecret(int* range) //obtain a randomly generated secret number in the range (started for you) int* getRange() //get the name of the text file and read the range from the text file (range is an int array of size 2, dynamically allocated using new, delete pointers when finished with them) int getGuess(int* range) //obtain a guess (ask again if the guess is not in the range) GuessEnum processGuess(int guess, int secret) //determine whether a guess is correct (return EXACT), too low (return TOO_LOW), or too high (return TOO_HIGH) int play(int* range, int secret) //loops until the secret number has been guessed and returns the total number of guesses required (calls getGuess and processGuess) int main() //starts up a game and loops as long as the user wants to keep playing (calls getRange, getSecret, and play, deletes the dynamically allocated
8/28/2014 Laboratory 01: Guessing Game
http://mboshart.dyndns.org/boshart/2111Labs/Lab01.html 2/3
integer array)
I like to use many short methods when I write programs. This allows you to increase the level of abstraction in your program, a term which you will hear very frequently this semester. Sections of code are replaced by well-named method calls. This improves the readability of your program.
Batch File
Typing at the command line every time that you want to compile and run can be tedious. Instead, you can type your command line instructions into a text (batch) file with the .bat extension. Then you can simply type the name of the batch file at the command prompt followed by the drive letter of your jump drive (i.e. build e) and all of your instructions listed in the batch file will automatically execute in order. Take a look at build.bat to see the set of command line operations that you can use to compile and link your work for this lab. If you don't need to compile certain files, you can comment out the corresponding line with ::. This makes it easy to select and deselect which files to compile.
Artificial Intelligence
Write a new driver file (ComputerGuessDriver.cpp) so that the user picks the secret number and the computer tries to guess the number. Try to have the computer use as few guesses as possible. What is a secret number that forces the computer to take the maximum number of guesses? You will need to modify build.bat.
8/28/2014 Laboratory 01: Guessing Game
http://mboshart.dyndns.org/boshart/2111Labs/Lab01.html 3/3