I created a java number guessing game. I used some of the same code twice. I would like to know how to further simplify it if possible (I am a java beginner).
import java.util.Random;
import java.util.Scanner;
public class GuessingGameTest {
public static void main(String[] args) {
while (true) {
System.out.println("Hello and welcome to my number guessing game.");
System.out.println("Pick a number: ");
Scanner inputnum = new Scanner(System.in);
int maxnum;
maxnum = inputnum.nextInt();
while (maxnum > 100) {
System.out.println("This is a big number, it will take you a while to guess.");
System.out.println("Do you want to continue?");
System.out.println("Type 0 for yes, type 1 for no.");
Scanner inputnum1 = new Scanner(System.in);
int largeNumber;
largeNumber = inputnum1.nextInt();
int yes1 = 0;
int no1 = 1;
if (largeNumber == yes1) {
System.out.println("The game will continue.");
Random rand1 = new Random();
int number1 = rand1.nextInt(maxnum);
int tries1 = 0;
Scanner input1 = new Scanner(System.in);
int guess1;
boolean win1 = false;
while (win1 == false) {
System.out.println("Guess a number between 1 and " + maxnum + ": ");
guess1 = input1.nextInt();
tries1++;
if (guess1 == number1) {
win1 = true;
} else if (guess1 < number1) {
System.out.println("Number is to low, tray again");
} else if (guess1 > number1) {
System.out.println("Number is to high, try again");
}
}
System.out.println("You win!");
System.out.println("It took you " + tries1 + " tries.");
System.out.println("Do you want to start again?");
System.out.println("Type 1 to start again, type 2 to quit.");
Scanner inputnumlast = new Scanner(System.in);
int restartProgram1;
restartProgram1 = inputnumlast.nextInt();
int yes2 = 1;
int no2 = 2;
if (restartProgram1 == yes2) {
System.out.println("The game will restart.");
System.out.flush();
}
if (restartProgram1 == no2) {
System.out.println("The game will quit.");
System.exit(0);
}
}
if (largeNumber == no1) {
System.out.println("Pick a number below 100.");
Scanner inputnum3 = new Scanner(System.in);
int maxnum3;
maxnum = inputnum3.nextInt();
}
break;
}
Random rand = new Random();
int number = rand.nextInt(maxnum);
int tries = 0;
Scanner input = new Scanner(System.in);
int guess;
boolean win = false;
while (win == false) {
System.out.println("Guess a number between 0 and " + maxnum + ": ");
guess = input.nextInt();
tries++;
if (guess == number) {
win = true;
} else if (guess < number) {
System.out.println("Number is to low, tray again");
} else if (guess > number) {
System.out.println("Number is to high, try again");
}
}
System.out.println("You win!");
System.out.println("It took you " + tries + " tries.");
System.out.println("Do you want to start again?");
System.out.println("Type 1 to start again, type 2 to quit.");
Scanner inputnum2 = new Scanner(System.in);
int restartProgram;
restartProgram = inputnum2.nextInt();
int yes = 1;
int no = 2;
if (restartProgram == yes) {
System.out.println("The game will restart.");
System.out.flush();
}
if (restartProgram == no) {
System.out.println("The game will quit.");
System.exit(5);
}
while (maxnum > 100) {
System.out.println("This is a big number, it will take you a while to guess.");
System.out.println("Do you want to continue?");
System.out.println("Type 0 for yes, type 1 for no.");
Scanner inputnum1 = new Scanner(System.in);
int largeNumber;
largeNumber = inputnum1.nextInt();
int yes1 = 0;
int no1 = 1;
if (largeNumber == yes1) {
System.out.println("The game will continue.");
Scanner inputnum0 = new Scanner(System.in);
int maxnum2;
maxnum = inputnum0.nextInt();
Random rand1 = new Random();
int number1 = rand1.nextInt(maxnum);
int tries1 = 0;
Scanner input1 = new Scanner(System.in);
int guess1;
boolean win1 = false;
while (win == false) {
System.out.println("Guess a number between 1 and " + maxnum + ": ");
guess = input.nextInt();
tries++;
if (guess == number) {
win = true;
} else if (guess < number) {
System.out.println("Number is to low, tray again");
} else if (guess > number) {
System.out.println("Number is to high, try again");
}
}
System.out.println("You win!");
System.out.println("It took you " + tries + " tries.");
System.out.println("Do you want to start again?");
System.out.println("Type 1 to start again, type 2 to quit.");
Scanner inputnumlast = new Scanner(System.in);
int restartProgram1;
restartProgram1 = inputnumlast.nextInt();
int yes2 = 1;
int no2 = 2;
if (restartProgram1 == yes2) {
System.out.println("The game will restart.");
System.out.flush();
}
if (restartProgram1 == no2) {
System.out.println("The game will quit.");
System.exit(0);
}
}
if (largeNumber == no1) {
System.out.println("Pick a number below 100.");
Scanner inputnum3 = new Scanner(System.in);
int maxnum3;
maxnum = inputnum3.nextInt();
}
break;
}
Random randlast = new Random();
int numberlast = randlast.nextInt(maxnum);
int trieslast = 0;
Scanner inputlast = new Scanner(System.in);
int guesslast;
boolean winlast = false;
while (win == false) {
System.out.println("Guess a number between 0 and " + maxnum + ": ");
guess = input.nextInt();
tries++;
if (guess == number) {
win = true;
} else if (guess < number) {
System.out.println("Number is to low, tray again");
} else if (guess > number) {
System.out.println("Number is to high, try again");
}
}
System.out.println("You win!");
System.out.println("It took you " + tries + " tries.");
System.out.println("Do you want to start again?");
System.out.println("Type 1 to start again, type 2 to quit.");
Scanner inputnum3 = new Scanner(System.in);
int restartProgram2;
restartProgram2 = inputnum2.nextInt();
int yeslast = 1;
int nolast = 2;
if (restartProgram == yeslast) {
System.out.println("The game will restart.");
System.out.flush();
}
if (restartProgram == nolast) {
System.out.println("The game will quit.");
System.exit(5);
}
}
}
}
main(String[] args)
\$\endgroup\$