Also make sure you understand the code in the main method


Formulate an object and use it with the Number Guessing Game

In this exercise, you'll convert a number guessing game like the one described in exercise 3-3 so it uses some object-oriented features.

Review the project

1. Start NetBeans and open the project named ch04_ex4_GuessingGame in the extra_ex_starts directory.

2. Run the project and make sure it works correctly. Also, make sure you understand the code in the main method. Formulate a class that stores the data for the game

3. In the murach.games package, formulate a new class named NumberGame.

4. In this class, create one instance variable for storing the upper limit of the number, a second for storing the number, and a third for the number of guesses the user has made.

5. Add a constructor to the class that takes an integer value for the upper limit and uses it to set the upper limit instance variable. Then, generate the number that the user should try to guess and set that instance variable. You can copy and modify the relevant lines of code from the main method to achieve this. Finally, initialize the instance variable for the number of guesses to 1.

6. Add get methods for all three instance variables. Use your IDE to achieve this if possible. You don't need to create set methods.

7. Add a method named incrementGuessCount that adds 1 to the instance variable for the number of guesses.

Use the class

8. In the Main class modify the code so it uses the new object. For example, use the getUpperLimit method to display the upper limit to the user. Then, remove any unnecessary code.

9. Run the project again and makes sure it still works correctly. Add a second constructor and use it

10. In the NumberGame class, add a constructor to the class that takes no arguments. The code for this constructor can call the other constructor in this class and pass it a value of 50 for the upper limit.

11. In the Main class, modify the code so it uses the zero-argument constructor. Then, comment out the statements that get the upper limit from the user. These statements are no longer necessary since the constructor automatically sets the upper limit to 50.

12. Run the project again and makes sure it works correctly. It should set an upper limit of 50 by default.

ORIGINAL CODE FOR ch04_ex4_GuessingGame

package murach.games;

import java.util.Random;

import java.util.Scanner;

public class Main {

    public static void main(String args[]) {

       System.out.println("Welcome to the Number Guessing Game");

       System.out.println();

       Scanner sc = new Scanner(System.in);

       // Get upper limit

       System.out.print("Enter the upper limit for the number: ");

       int upperLimit = Integer.parseInt(sc.nextLine());

       System.out.println("OK, I'm thinking of a number between 0 and " +

               upperLimit);

       System.out.println();

       // Generate a random number between 0 and the upperLimit variable

       Random random = new Random();

       int number = random.nextInt(upperLimit - 1) + 1;

       int count = 1;

       System.out.print("Enter your guess: ");

       int guess = Integer.parseInt(sc.nextLine());

       while (guess != number) {

           if (guess < number) {

               System.out.println("Your guess is too low.n");

           } else if (guess > number) {

               System.out.println("Your guess is too high.n");

           }

           count = count + 1;

           System.out.print("Enter your guess: ");

           guess = Integer.parseInt(sc.nextLine());

       }      

       System.out.println("Correct!n");

       System.out.println("You guessed the correct number in " + count +

               " guesses.n");

       System.out.println("Bye!");

    }

}

Solution Preview :

Prepared by a verified Expert
Basic Computer Science: Also make sure you understand the code in the main method
Reference No:- TGS02618966

Now Priced at $20 (50% Discount)

Recommended (94%)

Rated (4.6/5)