2015-08-31 2 views
-3

Я пытаюсь создать игру на скачки. У меня проблемы с сопоставлением значений лошадей друг с другом, чтобы увидеть, какой из них побеждает.Оператор> не определен для типа аргументов java.util.Random, java.util.Random

В если заявление Я пытаюсь сравнить значение horse1 со значением horse2 и horse3. Но я получаю ошибку: он оператор> не определено для типа аргумента (ов) java.util.Random, java.util.Random

import java.util.Scanner; 
import java.util.Random; 
public class RunHorseGame 
{ 

public static void main(String[] args) 
{ 
// TODO Auto-generated method stub 

//variables 
    String name; 
    float bal; 
    float bet; 
    boolean nextRace; 
    int raceChoice; 
    int startRace; 

    Random horse1 = new Random(100); 
    Random horse2 = new Random(100); 
    Random horse3 = new Random(100); 
    Random horse4 = new Random(100); 
    Random horse5 = new Random(100); 
    Random horse6 = new Random(100); 
    Random horse7 = new Random(100); 

    Scanner input = new Scanner(System.in); 

//welcome screen 
    System.out.println("Welcome to Horse Racing!"); 
    System.out.println("Please enter your name:"); 
    name = input.nextLine(); 
    System.out.println("welcome " + name + ", you have a balance of $200!"); 

//create loop to repeat races when one finishes (keep balance) 
    nextRace = true; 
    while (nextRace == true) 
    { 
     bal = 200; 

//give race options 
     System.out.println("Please select which race you would like to  enter:"); 
     System.out.println("Press 1 to enter: 3 horse race"); 
     System.out.println("Press 2 to enter: 5 horse race"); 
     System.out.println("Press 3 to enter: 7 horse race"); 

//create each race 
//each horse has randomizer 
//highest number wins race 

     raceChoice = input.nextInt(); 
     switch(raceChoice) 
     { 
      case 1: 
       System.out.println("You have entered the 3 horse race!"); 
       System.out.println("How much would you like to bet?"); 
       bet = input.nextFloat(); 
       System.out.println("You have bet " + bet + " dollars."); 
       bal =- bet; 
       System.out.println("Press 1 to start."); 
       System.out.println("Press 2 to go back to race selection."); 

       startRace = input.nextInt(); 
       switch(startRace) 
       { 
       case 1: 


        if(horse1 > horse2 && horse1 > horse3) 
        { 

        } 

        break; 

       case 2: 
        nextRace = false; 
        break; 
       } 


       break; 
      case 2: 
       break; 
      case 3: 
       break; 
      default: 
       break; 


     } 

     nextRace = true; 

    } 
} 
} 
+2

'Random horse1 = new Random (100);' ** не ** делает лошадь1 случайным числом до 100 (что похоже на то, что вы с ним делаете). Вам нужен только один «случайный» объект, тогда лошадь 1, лошадь2 и т. Д. Будут ints или что-то еще, и вы назначаете их как 'horse1 = myRandom.nextInt (100);' – csmckelvey

ответ

0

Используйте следующее:

Random randomGenerator = new Random(); 

     int horse1 = randomGenerator.nextInt(100); 
     int horse2 = randomGenerator.nextInt(100); 
//and so on... 

As (@ajb) справедливо сказано, что: а Random не является случайным числом. Поэтому, когда вы назначаете лошадь, тип данных должен быть int, а не Random, а затем вы должны использовать метод Random, как показано выше, чтобы получить желаемое случайное число.

4

Randomэто не случайное число. A Random - это случайное число генератор. Поэтому, если вы хотите получить цифры для сравнения, вы должны использовать один из методов в Random, чтобы получить генератор , чтобы сгенерировать номер.

2

Random - ссылка на генератор случайных чисел, а не на что-либо еще. Вам не нужно создавать новый генератор случайных чисел для каждой лошади.

сделать один экземпляр Random: Random r = new Random()

Затем создать случайный шанс лошади: int horse = r.nextInt(100);

Как и так.

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