Делаю простую игру 'Угадай число'. В процессе выяснил, что почему то значение рандомной переменной постоянно меняется или что-то не так в проверке.
Вот как выглядит код -
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// все переменные
Scanner infoUser = new Scanner(System.in);
int choise = 4;
String name;
// если что тут правила
System.out.println("Угадай число #0.1");
System.out.print("Как вас зовут: ");
name = infoUser.nextLine();
System.out.println(" ");
System.out.println(name + " попал в самую суровую игру в мире - 'Угадай число'!");
// бесконечно играем, до выхода
while (choise != 0) {
System.out.println("1. Легкий(от 1 до 100 за 6 попыток)");
System.out.println("2. Средний(от 1 до 300 за 8 попыток)");
System.out.println("3. Сложный(от 1 до 1000 за 11 попыток)");
System.out.print("Выбери уровень игры: ");
choise = infoUser.nextInt();
switch (choise) {
case 1:
level1();
break;
case 2:
level2();
break;
case 3:
level3();
break;
}
}
}
// 1 уровень
public static void level1 () {
System.out.println("Уровень игры: легкий. Введите число");
for (int arr = 0; arr <= 5; arr++) {
// постоянно спрашиваем число
Scanner infoUser = new Scanner(System.in);
final int random_number = 1 + (int) (Math.random() * 100);
System.out.println(" ");
System.out.print("Попробуй угадать: ");
int userNum1 = infoUser.nextInt();
// проверки
if (userNum1 == random_number) {
System.out.println("Поздравляю! Вы угадали число за " + arr + " попыток");
System.out.println(" ");
break;
} else if (random_number > userNum1)
System.out.println("Ваше число мальнькое");
else if (random_number < userNum1)
System.out.println("Ваше число большое");
if (arr == 5) {
System.out.println("Вы проиграли. Это было число " + random_number);
System.out.println(" ");
break;
}
}
}
// 2 уровень
public static void level2 () {
System.out.println("Уровень игры: средний. Введите число");
for (int arr = 0; arr <= 7; arr++) {
// постоянно спрашиваем число
Scanner infoUser = new Scanner(System.in);
final int random_number2 = 1 + (int) (Math.random() * 300);
System.out.println(" ");
System.out.print("Попробуй угадать: ");
int userNum2 = infoUser.nextInt();
// проверки
if (userNum2 == random_number2) {
System.out.println("Поздравляю! Вы угадали число за " + arr + " попыток");
System.out.println(" ");
break;
} else if (random_number2 > userNum2)
System.out.println("Ваше число мальнькое");
else if (random_number2 < userNum2)
System.out.println("Ваше число большое");
if (arr == 7) {
System.out.println("Вы проиграли. Это было число " + random_number2);
System.out.println(" ");
break;
}
}
}
// 3 уровень
public static void level3 () {
System.out.println("Уровень игры: сложный. Введите число");
for (int arr = 0; arr <= 10; arr++) {
// постоянно спрашиваем число
Scanner infoUser = new Scanner(System.in);
final int random_number3 = 1 + (int) (Math.random() * 1000);
System.out.println(" ");
System.out.print("Попробуй угадать: ");
int userNum3 = infoUser.nextInt();
// проверки
if (userNum3 == random_number3) {
System.out.println("Поздравляю! Вы угадали число за " + arr + " попыток");
System.out.println(" ");
break;
} else if (random_number3 > userNum3)
System.out.println("Ваше число мальнькое");
else if (random_number3 < userNum3)
System.out.println("Ваше число большое");
if (arr == 10) {
System.out.println("Вы проиграли. Это было число " + random_number3);
System.out.println(" ");
break;
}
}
}
}
Как это исправить?