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();
}
}
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);
}
}
Get Answers For Free
Most questions answered within 1 hours.