Question

I wrote the following java code with the eclipse ide, which is supposed to report the...

I wrote the following java code with the eclipse ide, which is supposed to report the number of guesses it took to guess the right number between one and five. Can some repost the corrected code where the variable "guess" is incremented such that the correct number of guesses is displayed? please test run the code, not just look at it in case there are other bugs that exist.


import java.util.*;

public class GuessingGame {

   public static final int maxNUM = 5;

   public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       haiku();
       int guesses = playGame(input);
       System.out.print("Do you want to play again? ");
       String choice = input.next();
       char retry = choice.charAt(0);
       int game = 1;
       while (retry == 'Y' || retry == 'y') {
           playGame(input);
           game++;
           System.out.print("Do you want to play again? ");
           choice = input.next();
           retry = choice.charAt(0);
       }
       if (retry == 'N' || retry == 'n') {
           reportResults(input, guesses, game);
       }
       // int gamesPlayed = repeat(input);
       // reportResults(input, guesses, game);
   }

   public static int playGame(Scanner input) {
       Random r = new Random();
       int answer = r.nextInt(maxNUM) + 1;
       // System.out.println("secret number is " + answer);
       System.out.println("Guess a number between 1 and " + maxNUM + "...");
       int response = 0;
       int guess = 0;
       while (response != answer) {
           System.out.print("Your guess? ");
          
           response = input.nextInt();
           if (response > answer) {
              
               System.out.println("It's lower.");
              
           } else if (response < answer) {
          
               System.out.println("It's higher.");
              
           }
          
           if (response == answer) {
               if (guess == 1) {
                   System.out.println("Great Job! You got it right in 1 try");
               } else if (response == answer) {
                   System.out.println("You got it right in " + guess + " tries");
               }
           }
          
           for (int i = 1; i <= 1; i++) {
               guess = (guess * 10) % 10;
           }
           // System.out.println("guess = " + guess + " -1");
       }
       return guess - 1;
   }

   public static int repeat(Scanner input) {
       System.out.println();
       System.out.print("GAME OVER! Play Again?, (Y,N) ");
       String choice = input.next();
       char retry = choice.charAt(0);
       int game = 0;
       while (retry == 'Y' || retry == 'y') {
           playGame(input);
           System.out.print("PLAY AGAIN?, (Y/N) ");
           String nextTry = input.next();
           retry = nextTry.charAt(0);
           game++;
       }
       return game + 1;
   }

   // show overall results
   public static void reportResults(Scanner input, int guesses, int gamesPlayed) {
       System.out.println("Overall results:");
       System.out.println(" total number of games = " + gamesPlayed);
       System.out.println(" total guesses = " + guesses);
       System.out.println(" guesses/game = " + 1.0 * guesses / gamesPlayed);
       System.out.println(" best game = ");
   }

   public static double round1(double round) {
       return Math.round(round * 10.0) / 10.0;

   }

   // haiku
   public static void haiku() {
       System.out.println("You Guess the number.");
       System.out.println("Get it wrong and I'll say:");
       System.out.println("Higher or lower.");
       System.out.println();
   }
}

Homework Answers

Answer #1

copyable code

import java.util.*;

public class GuessGa {

//declare the integer varaibale mNUM

public static final int mNUM = 5;

      

//main()

     public static void main(String[] args) {

          Scanner in = new Scanner(System.in);

          Random rd = new Random();

          haiku();

          plyGame1(in,rd);

     }

    

     //haiku

     public static void haiku() {

          System.out.println("choose the number.");

      System.out.println("Guess a num and I'll say:");

      System.out.println("Higher or lower.");

      System.out.println();

     }

    

     //CHANGE THE CODE

     public static void plyGame1(Scanner in,Random rd) {

          int game = 1;

          int Guesses = Game(in,rd);

          int bestGame = Guesses;

          System.out.print("play again? ");

          String ans = in.next();

          System.out.println("\n");

          while (ans.charAt(0) == 'y' || ans.charAt(0) == 'Y') {

              int guess = Game(in,rd);

              Guesses += guess;

              game++;

              System.out.print(" play again? ");

              ans = in.next();

              System.out.println();

              if(guess < bestGame) {

                   bestGame = guess;

              }

          }

          reportResults(Guesses, game, bestGame);

     }

         

    

     public static int Game(Scanner in,Random rd) {

          System.out.println("I'm thinking of a num between 1 and " + mNUM + "...");

             int num = (rd.nextInt(mNUM) + 1);

          System.out.print("Your guess? ");

          int guess = in.nextInt();

          int response = 1;

          while (!(guess == num)) {

              if (guess > num) {

                    System.out.println("It's lower.");

              }

              if (guess < num) {

                   System.out.println("It's higher.");

              }

              System.out.print("Your guess? ");

              guess = in.nextInt();

              response++;

          }

          if (response == 1) {

              System.out.println("great job You got it right in 1 TRY!");

          } else {

              System.out.println("You got it right in " + response + " guesses!");

          }

          return response;

     }

    

     //show overall results

     public static void reportResults(int Guesses, int game, int bestGame) {

          double guesses_Game = (double)Guesses / game;

          System.out.println("Overall results:");

          System.out.println("total games   = " + game);

          System.out.println("total guesses = " + Guesses);

          System.out.print("Gueses/game   = ");

          System.out.printf("%.1f", guesses_Game);

          System.out.println("Best game     = " + bestGame);

     }

}

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
THIS IS FOR JAVA I have to write a method for a game of Hangman. The...
THIS IS FOR JAVA I have to write a method for a game of Hangman. The word the user is trying to guess is made up of hashtags like so " ###### " If the user guesses a letter correctly then that letter is revealed on the hashtags like so "##e##e##" If the user guesses incorrectly then it increments an int variable named count " ++count; " String guessWord(String guess,String word, String pound) In this method, you compare the character(letter)...
Fix the program: what if the input is three? import java.util.Scanner public class Test { public...
Fix the program: what if the input is three? import java.util.Scanner public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Enter an integer: "); int m = in.nextInt(); System.out.print("Enter another integer: "); int n = in.nextInt(); System.out.println(m + " " + n); } }
Write a method that returns the sum of all the elements in a specified column in...
Write a method that returns the sum of all the elements in a specified column in a 3 x 4 matrix using the following header: public static double sumColumn(double[][] m, int columnIndex) The program should be broken down into methods, menu-driven, and check for proper input, etc. The problem I'm having is I'm trying to get my menu to execute the runProgram method. I'm not sure what should be in the parentheses to direct choice "1" to the method. I'm...
Covert the following Java program to a Python program: import java.util.Scanner; /** * Displays the average...
Covert the following Java program to a Python program: import java.util.Scanner; /** * Displays the average of a set of numbers */ public class AverageValue { public static void main(String[] args) { final int SENTINEL = 0; int newValue; int numValues = 0;                         int sumOfValues = 0; double avg; Scanner input = new Scanner(System.in); /* Get a set of numbers from user */ System.out.println("Calculate Average Program"); System.out.print("Enter a value (" + SENTINEL + " to quit): "); newValue =...
I am trying to take a string of numbers seperated by a single space and covert...
I am trying to take a string of numbers seperated by a single space and covert them into a string array. I have created the following code but it only works if the numbers are seperated a a comma or something similar to that. Example of what I am trying to achieve: string input = "1 1 1 1 1" turn it into.... int[] x = {1,1,1,1} so that it is printed as... [1, 1, 1, 1]    This is...
Covert the following Java program to a Python program: import java.util.Scanner; /* Calculates and displays the...
Covert the following Java program to a Python program: import java.util.Scanner; /* Calculates and displays the area of a rectangle * based on the width and length entered by the user. */ public class RectangleArea2 {             public static void main(String[] args) { int length; //longer side of rectangle             int width; //shorter side of rectangle int area; //calculated area of rectangle Scanner input = new Scanner(System.in);                               System.out.print("Enter the length: ");            length = input.nextInt(); System.out.print("Enter...
Please explain code 1 and code 2 for each lines code 1 public class MyQueue {...
Please explain code 1 and code 2 for each lines code 1 public class MyQueue {    public static final int DEFAULT_SIZE = 10;    private Object data[];    private int index; code 2 package test; import java.util.*; /* Class Node */ class Node { protected Object data; protected Node link; /* Constructor */ public Node() { link = null; data = 0; } /* Constructor */ public Node(Object d,Node n) { data = d; link = n; } /*...
This is the java code that I have, but i cannot get the output that I...
This is the java code that I have, but i cannot get the output that I want out of it. i want my output to print the full String Form i stead of just the first letter, and and also print what character is at the specific index instead of leaving it empty. and at the end for Replaced String i want to print both string form one and two with the replaced letters instead if just printing the first...
please fix code to delete by studentname import java.util.Scanner; public class COurseCom666 {     private String...
please fix code to delete by studentname import java.util.Scanner; public class COurseCom666 {     private String courseName;     private String[] students = new String[1];     private int numberOfStudents;     public COurseCom666(String courseName) {         this.courseName = courseName;     }     public String[] getStudents() {         return students;     }     public int getNumberOfStudents() {         return numberOfStudents;     }     public void addStudent(String student) {         if (numberOfStudents == students.length) {             String[] a = new String[students.length + 1];            ...
[Java] I'm not sure how to implement the code. Please check my code at the bottom....
[Java] I'm not sure how to implement the code. Please check my code at the bottom. In this problem you will write several static methods to work with arrays and ArrayLists. Remember that a static method does not work on the instance variables of the class. All the data needed is provided in the parameters. Call the class Util. Notice how the methods are invoked in UtilTester. public static int min(int[] array) gets the minimum value in the array public...