Компьютер Угадай мой номер игра проблема
В этой программе пользователь должен придумать число и позволить компьютеру угадать его.
Компьютер запросит у пользователя привязку,
Компьютер будет угадать число между связанными,
Пользователь будет вводить "выше" или "ниже", чтобы заставить компьютер угадать правильное число,
Если компьютер угадает правильный ответ, пользователь введет "да" и напечатает правильное утверждение.
Кодирование ниже-это то, над чем я работаю, однако я застрял в некоторых проблемах. Пожалуйста, помогите мне! Спасибо!
Проблемы, которые я нашел:
1. я не понимаю, как определить функцию randomInt внутри класса, но вне основной функции.
2. я попробовал программу, но предположение компьютера странно. Компьютер не угадает число, основанное на моем руководстве.
import java.util.*; public class Guess { public static int randomInt(int min, int max) { return (int)((Math.random()*((max-min)+1))+min); } public static void main(String[] args) { Scanner in = new Scanner(System.in); //ask about the lower bound, TextIO.putln("Hey there! Welcom to the game!\n" +"I'm going to guess a number, and you have to pick it\n" + "and you get to decide the bounds.\n" + "What should the lower bound be?"); int lowerlimit = in.nextInt(); //if the user enter the number lower than 0, while(lowerlimit < 0) { TextIO.putln("ERROR Please enter a number that greater than 0"); lowerlimit = in.nextInt(); } //ask about the upper bound, TextIO.putln("Great! How about the upper bound?"); int upperlimit = in.nextInt(); //if the user enter the number lower than 0, while((upperlimit <= lowerlimit)) { TextIO.putln("ERROR Please enter a number " + "that greater than the lower bound."); upperlimit = in.nextInt(); } //Print the range and instruction, TextIO.putln("Ok. In the range between " + lowerlimit + " and "+upperlimit+":"+"\nPlease enter 'lower'/'higher' " + "when the number I picked is not correct\n" + "Enter 'yes' when I picked the right number" ); //Generate the random number between the range, String feedback = ""; while (!feedback.equals("yes")) { Random random = new Random(); int randNum = lowerlimit + random.nextInt(upperlimit - lowerlimit + 1); System.out.println("I think it is " + randNum); feedback = in.next(); //When the computer need to pick a lower number, if (feedback.equals("lower")) upperlimit = randNum - 1; // When the computer need to pick a higher number, else if (feedback.equals("upper")) lowerlimit = randNum + 1; } //When the user guesses the correct number, System.out.println("Yes! Correct!"); in.close(); } } // end of Guess class
Что я уже пробовал:
Я искал много примеров, которые похожи на мою программу, но я до сих пор не могу исправить это моя программа. Предположение компьютера все еще не имеет смысла.
Вот результат:
(предположим, что число, выбранное пользователем, равно 5)
Эй, там! Добро пожаловать в игру!
Я собираюсь угадать число, и вы должны выбрать его
и вы сами решаете границы.
Какой должна быть нижняя граница?
1
Отлично! Как насчет верхней границы?
10
Хорошо. В диапазоне от 1 до 10:
Пожалуйста, введите "ниже" / "выше", если число, которое я выбрал, неверно
Введите "да", когда я выбрал правильный номер
Я думаю, что это 9
ниже
Я думаю, что это 8
ниже
Я думаю, что это 6
ниже
Я думаю, что это 1
выше
Я думаю, что это 1<--дублируется
выше
Я думаю, что это 4
выше
Я думаю, что это 4
выше
Я думаю, что это 2< - не имеет смысла
да
- Да! Правильно!