Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I cant get the \"best game\" function to work corrctly. The \"best game\" functi

ID: 641267 • Letter: I

Question

I cant get the "best game" function to work corrctly. The "best game" function should calculate the fewest guesses needed to win any one game. When the second out of three games is the best game, there is no way to output that specific number of guesses.

Here is what I have so far:

public class GuessingGame2 {

   public static void main(String [] args) {

  

       Scanner console =new Scanner(System.in);

       Random r = new Random();

      

       String playagain;

      

       int

       randomnumber,

       userguess = 0,

       numberofguesses = 0,

       totalguesses = 0,

       numberofgames = 0,

       bestgame = 1000;

      

       double guessespergame;

      

       do {

           //Calculates random number between 1 and 100.

               randomnumber = r.nextInt(100)+1;

          

           //Portion #1: Starts Game

               //Statement to initiate game.

                   System.out.println("I'm thinking of a number between 1 and 100...");

               //TELLS ME THE ANSWER - TAKE OUT LATER

                   System.out.println("*** HINT: the answer is: " + randomnumber);

              

          

           //Portion #2: First Guess

               //FirstGuess

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

                   userguess = console.nextInt();

              

               //Adds to Number of Guesses

                   numberofguesses++;

                  

  

           //Portion #3: While loop to continue guessing

           while (userguess != randomnumber) {

              

               //Prints statments for wrong answers

               if (userguess < randomnumber) {

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

               } else if (userguess > randomnumber) {

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

               }

              

               //Second Guess

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

                   userguess = console.nextInt();

                 

               //Adds to number of guesses & total if answer wrong

                   numberofguesses++;

              

           }

          

          

           //Portion #4: Statments after "user" guesses correctly

              

               //Tells user how many guesses neccesary

                   System.out.println("You guessed it in " + numberofguesses + " guesses!");

                  

              

               //Statement and scanner that Ask User if they want to play again

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

                   playagain = console.next();

                   System.out.println();

              

          

                  

           //Portion #5: Overall Results

                   numberofgames++;

          

                   totalguesses = totalguesses + numberofguesses;

          

                   bestgame = numberofguesses;

          

                   if (numberofguesses == 1) {

                       bestgame = numberofguesses;                      

                   }

                   else if (numberofguesses != 1) {

                       bestgame = numberofgames;

                   }

              

                  

                   guessespergame= (double) totalguesses/numberofgames;

          

           //Portion #6: Reset Number of guesses

               //Sets numberofguesses to 0

                   numberofguesses=0;

          

       } while (playagain.equalsIgnoreCase("y") || playagain.equalsIgnoreCase("yes"));

      

      

       System.out.println("Your overall results:");

       System.out.println("Total games = " + numberofgames);

       System.out.println("Total guesses = " + totalguesses);

       System.out.printf("Guesses/Game = %.1f ", guessespergame);

       System.out.println("Best game: " + bestgame);

  

   }

}

Explanation / Answer

Comment if you have any doubts.

I've bolded the modified code.

import java.util.*;
public class GuessingGame2
{
   public static void main(String[] args) {
       Scanner console = new Scanner(System.in);
       Random r = new Random();
       String playagain;
       int   randomnumber,userguess = 0,numberofguesses = 0,totalguesses = 0,numberofgames = 0,bestgame = Integer.MAX_VALUE;
       double guessespergame;
       do {
           // Calculates random number between 1 and 100.
           randomnumber = r.nextInt(100) + 1;
           // Portion #1: Starts Game
           // Statement to initiate game.
           System.out.println("I'm thinking of a number between 1 and 100...");
           // TELLS ME THE ANSWER - TAKE OUT LATER
           System.out.println("*** HINT: the answer is: " + randomnumber);
           // Portion #2: First Guess
           // FirstGuess
           System.out.print("Your Guess? ");
           userguess = console.nextInt();
           // Adds to Number of Guesses
           numberofguesses++;
           // Portion #3: While loop to continue guessing
           while (userguess != randomnumber) {
               // Prints statments for wrong answers
               if (userguess < randomnumber) {
                   System.out.println("It's Higher.");
               } else if (userguess > randomnumber) {
                   System.out.println("It's Lower.");
               }
               // Second Guess
               System.out.print("Your Guess? ");
               userguess = console.nextInt();
               // Adds to number of guesses & total if answer wrong
               numberofguesses++;
           }
           // Portion #4: Statments after "user" guesses correctly
           // Tells user how many guesses neccesary
           System.out.println("You guessed it in " + numberofguesses
                   + " guesses!");
           // Statement and scanner that Ask User if they want to play again
           System.out.print("Play again? ");
           playagain = console.next();
           System.out.println();
           // Portion #5: Overall Results
           numberofgames++;
           totalguesses = totalguesses + numberofguesses;
           if(bestgame>numberofguesses)bestgame = numberofguesses;
           guessespergame = (double) totalguesses / numberofgames;
           // Portion #6: Reset Number of guesses
           // Sets numberofguesses to 0
           numberofguesses = 0;
       } while (playagain.equalsIgnoreCase("y")
               || playagain.equalsIgnoreCase("yes"));
       System.out.println("Your overall results:");
       System.out.println("Total games = " + numberofgames);
       System.out.println("Total guesses = " + totalguesses);
       System.out.printf("Guesses/Game = %.1f ", guessespergame);
       System.out.println("Best game: " + bestgame);
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote