2015-04-18 8 views
0

Я делаю базовую игру угадывания в unix, где у меня есть случайное количество чисел из диапазона возможных чисел от 1 до 10, и у пользователя три возможности: введите предположение перед «потерей» или «победой». Я относительно новичок в использовании unix, не говоря уже о vim, поэтому, если бы я мог получить некоторую помощь, которая была бы очень оценена. Я продолжаю получать эти ошибки: «no suitable constructor found for Random(int, int)», а также «error: cannot find symbol» для guess, secGuess и thirGuess, хотя я их создал. Я понятия не имею, что я делаю неправильно. вот мой код java:Не найдено подходящего конструктора для Random (int, int)

import java.util.Random; 
import java.util.Scanner; 

class Guess { 
    public static void main (String[] args) { 
     Random num = new Random(1,10); 
     int value = num.nextInt(10); 
     Scanner sc = new Scanner(System.in); 
     int guess; 
     int secGuess; 
     int thirGuess; 

     System.out.println("guess a number between 1 and 10"); 
     int tryCount = 0; 


     guess = input.nextInt(); 
     if(guess == value) { 
      System.out.println("Yay! You win!"); 
      noLoop(); 
     } 
     if(guess > value) { 
      System.out.println("Nope! Your number is too high, son!"); 
      tryCount++; 
     } 
     if(guess < value) { 
      System.out.println("Nope! That number is too low!"); 
      tryCount++; 
     } 


     secGuess = input.nextInt(); 
     if(secGuess == value) { 
      System.out.println("Yay! You win!"); 
     } 
     if(secGuess > value) { 
      System.out.println("Nope! Your number is too high, son!"); 
      tryCount++; 
     } 
     if(secGuess < value) { 
      System.out.println("Nope! That number is too low!"); 
      tryCount++; 
     } 

     thirGuess = input.nextInt(); 
     if(thirGuess == value) { 
      System.out.println("Yay! You win!"); 
      noLoop(); 
     } 
     if(thirGuess > value) { 
      System.out.println("Nope! Your number is too high, son!"); 
      tryCount++; 
     } 
     if(thirGuess < value) { 
      System.out.println("Nope! That number is too low!"); 
      tryCount++; 
     } 

     if(tryCount>3) { 
      System.out.println("You've exceeded the number of tries. Sorry, but you lose!"); 
     } 
    } 
} 
+4

Ну, вы посмотрели документацию для «Случайного»? Вы можете найти конструктор с двумя параметрами 'int'? Что вы ожидаете от этого? –

+4

Unix и Vim не имеют к этому никакого отношения. –

+0

После исправления ошибки «Случайный», единственные ошибки, которые я получаю, связаны с 'input' и' noLoop' - которые вы * не объявили *. –

ответ

0

Не существует конструктора Random с двумя параметрами. Заменить

Random num = new Random(1,10); 

с

Random num = new Random(); 

Следующая ошибка в guess = input.nextInt();. Нет ничего в области с именем input. Я полагаю, что вы имеете в виду sc. Есть три таких ошибки.

Последний noLoop();. Трудно исправить это, потому что я понятия не имею, что вы имеете в виду. Но можете попытаться угадать, что вы хотите закончить свою программу. Есть два способа return и System.exit(0)

+0

Спасибо, кучка. Ранее я сказал, что диапазон ввода пользователя должен быть между 1-10, но я думаю, что я не указал, что 1 был минимальным ... Я думаю, поэтому я положил его в random(). что я должен сделать, чтобы убедиться, что 1 является минимальным? –

+0

Если вы передадите параметр 'nextInt', он вернет значение между 0 и вашим параметром. Например, 'nextInt (3)' может возвращать 0, 1, 2. Поэтому, если вы напишете 'nextInt (10) + 1' результат будет именно тем, что вы хотите. – talex

+0

отлично, спасибо. Теперь мне просто нужно сделать tryCount работу ... –

0

Вы также можете попробовать сделать это

Random num = new Random(); 
int value = num.nextInt() % 10; 

Кроме того, вы можете цикл в тесты 3 раза вместо записи в 3 раза. Вроде так -

while(tryCount<3){ 
     guess = input.nextInt() % 10;; 
     if(guess == value) { 
      System.out.println("Yay! You win!"); 
      break; 
     } 
     if(guess > value) { 
      System.out.println("Nope! Your number is too high, son!"); 
      tryCount++; 
     } 
     if(guess < value) { 
      System.out.println("Nope! That number is too low!"); 
      tryCount++; 
     } 
} 
+0

уверен, в то время как цикл ... нормально, спасибо –

Смежные вопросы