import java.util.Random;
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
Random rand = new Random();
System.out.println("------------------šÆ Welcome to the Guessing Game!-----------------");
while (true) {
int target = rand.nextInt(101) - 50;
//also can express as below:
//method2
// int target = (int) (Math.random()*101) - 50;
//method3
//import java.util.concurrent.ThreadLocalRandom;
// int target = ThreadLocalRandom.current.nextInt(-50,51);
int guessCount = 0;
while (true) {
System.out.print("Please enter an integer between -50 and 50 or type 'bye' to quit: ");
String input = scan.nextLine().trim();
if (input.matches("(?i).*bye.*")) {
System.out.println("Goodbye.");
return;
}
try {
int guess = Integer.parseInt(input);
guessCount++;
if (guess < -50 || guess > 50) {
System.out.println("ā Try #" + guessCount + ": Number must be in range [-50, 50].");
} else if (guess > target) {
System.out.println("ā¬ ļø Try #" + guessCount + ": Target number is on the left.");
} else if (guess < target) {
System.out.println("ā”ļø Try #" + guessCount + ": Target number is on the right.");
} else {
System.out.println("ā Congratulations! You guessed it.");
System.out.println("šÆ The correct number is: " + target);
System.out.println("š Total guesses: " + guessCount + (guessCount == 1 ? " time." : " times."));
break;
}
} catch (NumberFormatException e) {
System.out.println("ā Invalid input.");
}
}
while (true) {
System.out.print("š Do you want to play again? (y/n): ");
String again = scan.nextLine().trim().toLowerCase();
switch (again) {
case "y" -> {
System.out.println("\nš Starting a new round...\n");
break;
}
case "n" -> {
System.out.println("š Thanks for playing. Goodbye!");
return;
}
default ->
System.out.println("ā Invalid input.");
}
}
}
}
}
}