У меня проблемы с этим заданием, которое мне дали (средняя школа). Это игра с угадыванием чисел, и я уже получил большую ее часть, но он хочет, чтобы мы поместили диапазон чисел на консоль. Пример вывода будет:

Введите нижний предел: 4

Введите верхний предел: 10

И т.д., в основном выберите конкретный диапазон чисел, из которого вы хотите выбрать компьютер. Я мог кодировать только в заданном диапазоне (1-1000), так как не могу понять, как делать то, что он хочет. Вот мой код:

import java.util.Scanner;


public class Game {
  public static void main(String[] args) {
        int randomNumber;
        randomNumber = (int) (Math.random() * 999 + 1);           
        Scanner keyboard = new Scanner(System.in);
        int guess;
 do {
            System.out.print("Enter a guess (1-1000): ");
            guess = keyboard.nextInt();

    if (guess == randomNumber)
  System.out.println("Your guess is correct. Congratulations!");
    else if (guess < randomNumber)
       System.out.println("Your guess is smaller than the secret number.");
  else if (guess > randomNumber)
 System.out.println("Your guess is greater than the secret number.");
        } while (guess != randomNumber);
  }

}

Если вы попробуете это, в любом случае тоже будет очень трудно играть. Буду признателен за помощь, спасибо!

0
Nathan Gonzalez 1 Май 2017 в 08:43

3 ответа

Лучший ответ

Для случайного числа в диапазоне у вас есть два варианта:

Random rand = new Random();
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;

Или в Java 1.7 или позже:

int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1);
6
Imaginary Pumpkin 1 Май 2017 в 06:22

Если вы хотите, чтобы пользователь установил диапазон, вам нужно будет ввести еще одну строку, в которой вы спрашиваете пользователя о диапазоне

Scanner min= new Scanner(System.in); и Scanner max = new Scanner(System.in);

Тогда в этой строке вашего кода randomNumber = (int) (Math.random() * 999 + 1); вы можете теперь установить желаемый диапазон с помощью пользовательского ввода random.nextInt(max - min + 1) + min

0
HelloWorld 1 Май 2017 в 06:00
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
  Scanner keyboard = new Scanner(System.in);
  System.out.println("enter minimum");
  int min= keyboard.nextInt();
  System.out.println("enter maximum");
  int max= keyboard.nextInt();
  int randomNumber= (int) (Math.random()* max + min);
  int guess;
  do {
     System.out.print("Enter a guess (1-1000): ");
     guess = keyboard.nextInt();

     if (guess == randomNumber)
        System.out.println("Your guess is correct. Congratulations!");
     else if (guess < randomNumber)
        System.out.println("Your guess is smaller than the secret number.");
     else if (guess > randomNumber)
        System.out.println("Your guess is greater than the secret number.");
   } while (guess != randomNumber);
  }
 }
0
CrazyGal 1 Май 2017 в 06:16