ЯВА, Настольная игра. Случайные числа костей не случайные

Если вы находитесь в офисной интрасети (в противном случае опасно), которая всегда защищена брандмауэрами, просто используйте следующие строки в ~ / .ssh / config

Host * StrictHostKeyChecking no UserKnownHostsFile = / dev / null

0
задан user11185322 11 March 2019 в 13:51
поделиться

4 ответа

Код, который получает случайный результат:

int roll = dice.throwDice();

выполняется ровно один раз. Вы вызываете метод throw один раз . Вы сохраняете результат, а не «указатель» на функцию, которая будет вызываться повторно всякий раз, когда roll где-то используется.

Таким образом, вы должны поставить эту строку:

roll = dice.throwDice();
System.out.println("You have rolled " + roll + ".");

прямо перед тем местом, где вы ожидаете еще один бросок костей!

0
ответ дан achAmháin 11 March 2019 в 13:51
поделиться

После добавления int roll = dice.throwDice(); в свой цикл вы можете обнаружить, что каждый раз получаете одну и ту же последовательность ролей. Если вы не хотите этого, вам придется установить случайное начальное число.

См. Этот вопрос: случайные числа Java с использованием начального числа

0
ответ дан jerlich 11 March 2019 в 13:51
поделиться

Измените класс игры в кости на это.

public class Dice {
    private Random random;
    public Dice(){
        random = new Random();
    }

    public int throwDice(){
        int dice = random.nextInt(6) + 1;
        return dice;
    }
}

И обновить roll = dice.throwDice(); внутри цикла. Это будет работать, потому что ваша игральная кость теперь имеет один случайный экземпляр, который генерирует новые случайные целые числа каждый раз, когда вызывается throwDice().

0
ответ дан Shafi 11 March 2019 в 13:51
поделиться
public class Dice {
    private Random random;
    public Dice(){
        random = new Random();
    }

    public int throwDice(){
        int dice = random.nextInt(6) + 1;
        return dice;
    }
}

Это будет работать, потому что у вашей кости теперь есть один случайный экземпляр, который генерирует новые случайные целые числа каждый раз, когда throwDice () вызывается

0
ответ дан david 11 March 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: