Question: Java Project Requirements: 1) Develop a simple class that represents a number guessing game. The game is played by the program randomly generating a number




Project Requirements: 1) Develop a simple class that represents a number guessing game. The game is played by the program randomly generating a number and the user attempting to guess that number. After each guess the program will provide a hint to the user identifying the relationship between the number and the guess. If the guess is above the answer then "Too High is returned, if the guess is below the answer then Too Low". Also if the difference between the answer and the guess is less than the difference between the answer and the previous guess, "Getting warmer" is returned. If the difference between the answer and the guess is more than the difference between the answer and the previous guess, then "Getting Colder" is returned. Guessing Game answer : int generator : Random gameOver: boolean differential : int max: int maxGuesses Allowed : int numGuesses Taken:int GuessingGame() GuessingGame (int) newGame(int) guess(int): String isGameOver(): boolean 2) The program will allow the user to play multiple games. Once a game is completed the user will be prompted to play a new game or quit. 3) Design and build a Guessing Game class. a. Seven instance variables. i. answer - an integer representing the randomly generated number. ii. generator - a random Generator object (created from the Java API i, answer - an integer representing the randomly generated number. ii. generator - a random Generator object (created from the Java API Random class)(zyBooks Section 2.14) iii. gameOver-a Boolean, false if game still in progress, true if the game is over. iv. differential - an integer representing the difference between a guess and the answer V. max maximum value of the number to guess. For example, if the maximum number is 100 then the number to guess would be between O and 100. (inclusive) vi. maxGuesses Allowed - the maximum number of guesses the user gets, once this value is passed the game is over. vii. numGuesses Taken - an integer that stores the number of guessed taken so far in any game. b. Constructor and Methods i. Default Constructor 1. Sets max to zero 2. Creates the random number generator object. ii. Parameterized Constructor 1. Takes an integer parameter representing the maximum value of the number to guess. 2. Creates the random number generator object. iii. new Game method 1. Takes in an integer as a parameter representing the maximum number of guesses and sets maxGuesses Allowed. In other words, the parameter represents how many guesses the user gets before the game is over. 2. Generates the answer using the random number generator. (O - max). 3. Sets gameOver to false. 4. Sets differential to the max value. 5. Sets numGuess Taken to zero. 5. Sets numGuess Taken to zero. iv. guess method 1. Takes in an integer as a parameter representing a new guess. 2. Compares the new guess with the answer and generates and returns a String representing an appropriate response. 3. The response is based on: a. The relation of the guess and answer too high, too low or correct). b. The comparison of difference between the current guess and the answer and the previous guess and the answer. (warmer, colder) c. Guess out of range error, if the guess is not between 0 and the max number (inclusive) (see sample run below) d. User has taken too many guess because numGuesses Taken is greater than maxGuesses Allowed. If this is the case set isGameOver to true. v. isGameOver method - returns the state of game. 1. true if game is over 2. false if still in progress. vi. Accessor and mutator methods for all instance fields except the Random number generator. Use the Accessor or mutator methods within the other methods of the class rather than directly accessing the instance fields. For example, use mutator methods in the parameterized constructor to modify instance variables. 4) Design and build GuessingGame Tester class a. This program will create GuessingGame objects and completely test the GuessingGame Class. b. The tester will also provide two loops. c. The first loop will allow the user to play a new game after the previous game is completed. d. The second or nested loop will prompt the user for a new guess and provide a response based on the guess. Sample Output: Welcome to the Guessing Game Enter the maximum number 100 answer is: 8 (Included for testing only, should not be display in final program) Enter the number of guess allowed: 6 Enter your guess, remember it must be between 0 and 100 50 Too High Getting Warmer Enter your guess, remember it must be between 0 and 100 25 Too High Getting Warmer Enter your guess, remember it must be between 0 and 100 12 Too High Getting Warmer Enter your guess, remember it must be between 0 and 100 6 Too low Getting Warmer Enter your guess, remember it must be between 0 and 100 8 Congratulation Would you like to play again, enter Y for yes, N for no. Implementation Notes: 1) The inner loop, (request the next guess) should use the class's isGameOver method to determine if a new guess is needed. 2) Boolean values and predicate method, (methods that return a Boolean) are essential in this project 3) No loops are required in the class's methods, they are only needed in the Tester
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
