Как я могу сделать «кубик», который случайным образом генерирует число 1-6 КАЖДЫЙ раз, когда он используется? - PullRequest
2 голосов
/ 07 декабря 2011

Прямо сейчас я использую

 int die = (int)(6.0 * Math.random()) + 1;

Это не работает для цикла, который я пытаюсь создать. Это метод, который я использую.

public void computerRoll()
{ 

 do { roll();
      System.out.println("Roll:"+ die);
      computerScore += die;
     } while (computerScore <= 20 && die >=2 && die <=6 );
     if (computerScore >=20)
        computerHold();

     if (die == 1)
        switchTurn();

 }

Метод roll () просто содержит предыдущую строку кода: "int die = (int) (6.0 * Math.random ()) + 1;" Я пытался переместить его или даже сделать его заполнителем, но если я выполняю метод, а число не равно 1, оно просто печатает это число, пока не достигнет двадцати. Я пытаюсь создать «кубик», который будет использовать НОВЫЙ номер при каждом его использовании.

1 Ответ

4 голосов
/ 07 декабря 2011

Похоже, ваш метод roll не обрабатывается как функция. Вам необходимо вернуть значение, сгенерированное вашей функцией roll ().

Попробуйте это:

int roll() {
    return (int)(6.0 * Math.random()) + 1;
}

и затем:

public void computerRoll() { 

    do { 
        int die = roll();
        System.out.println("Roll:"+ die);
        computerScore += die;
     } while (computerScore <= 20 && die >=2 && die <=6 );
     if (computerScore >=20)
         computerHold();

     if (die == 1)
         switchTurn();

 }
...