2014-12-10 2 views
1

Я пытаюсь создать метод с java, который включает в себя симуляцию прокатки трех кубиков, и он подсчитывает, сколько раз три шестисторонних кубика должны скатываться до тех пор, пока значения, показывающие, не будут разными. Я пытался создать его при использовании цикла while, но он, похоже, даже не запускается, хотя ошибок компилятора нет. Вот код, который у меня есть до сих пор:Dice Rolling loop

public class Rollin { 
    public static void diceGenerator() { 
     int numOfRolls = 0; //starts at zero for the number of rolls 
     int x = ((int)(Math.random() * 6 +1)); //simulation of three dice 
     int y = ((int)(Math.random() * 6 +1)); 
     int z = ((int)(Math.random() * 6 +1)); 
     while(!(x != y && y != z && x != z)) { // to check if the dice have any similar numbers 
      numOfRolls++; // counting the number of rolls 
     } 
     System.out.println(numOfRolls); //prints the number of rolls 
    } 
} 

ответ

2

Вы забыли перемотать в свою петлю. Кроме того, я бы использовал do-while и Random.nextInt(int) и применил De Morgan's laws к вашему тесту. Что-то вроде

Random rand = new Random(); 
int numOfRolls = 0; //starts at zero for the number of rolls 
int x; 
int y; 
int z; 
do { 
    numOfRolls++; 
    x = rand.nextInt(6) + 1; 
    y = rand.nextInt(6) + 1; 
    z = rand.nextInt(6) + 1; 
} while (x == y || y == z || x == z); 
0

У вас нет основного метода. Для простоты основной метод можно объяснить как статический метод, не связанный с какими-либо объектами, это первое, что нужно уволить при запуске Java-программы. Он работает аналогично любому другому методу в вашей программе, что означает, что вы можете кодировать, как вы хотите, внутри него.

Огонь ваш метод внутри основного метода, такие как:

public static void main(String[] args) { 
    diceGenerator(); 
} 

Кроме того, ваш код не в любом виде петли, так что кости прокатки будет выполнять только один раз.

0

У вас нет основного метода. Вам необходимо добавить основной метод к вашему классу Rollin (предполагая, что класс Rollin является единственным классом, который вы компилируете/выполняете) и вызывать diceGenerator изнутри.

public class Rollin 
{ 
    public static void main (String[] args) 
    { 
     diceGenerator(); 
    } 

    public static void diceGenerator() 
    { 
    int numOfRolls = 0; //starts at zero for the number of rolls 
    int x = ((int)(Math.random() * 6 +1)); //simulation of three dice 
    int y = ((int)(Math.random() * 6 +1)); 
    int z = ((int)(Math.random() * 6 +1)); 
    while(!(x != y && y != z && x != z))// to check if the dice have any similar numbers 
    { 
     numOfRolls++; // counting the number of rolls 
    } 
    System.out.println(numOfRolls); //prints the number of rolls 
    } 
} 
+0

Поскольку вы уже копируете решения другого пользователя, которые вы можете добавить в ответ @ Elliot, чтобы получить правильное решение. – softwarenewbie7331