Не знаю как реализовать логику рандома начала хода

В общем, я начинающий "разработчик" на java. Чтобы отточить некоторые навыки( работу с классами, функциями, объектами и т.д), решил сделать игру с помощью javaFX(но это как дополнительная инфа). В общем, игра "крестики-нолики"(знаю что банально, но начинать надо с чего-то), и у меня щас реализована логика хода через костыль int currentPlayer = (count % 2 == 0) ? 1 : 2;, здесь идет факт того, что если число делится на 2 - крестик, нет - нолик.

Однако, хочется внести в свой проект немного "крутости" и чтобы рандомно выбирался первый ход, то есть в одной игре был допустим крестик, во второй крестик, а в третьей уже выпал нолик(чисто пример). Но есть проблема, я не могу понять как реализовать эту логику. Может кто подскажет? Ну, или хотя бы дайте направление, чтобы набить шишек и понять как все взаимодействует.

Спасибо всем, кто откликнется!


Ответы (2 шт):

Автор решения: AlekseiGaile

Используйте Random

public int getRandom(){
    Random rand = new Random();    
    return rand.nextInt(2);
}

Код выдает случайные числа в диапазоне 0 - 1.

→ Ссылка
Автор решения: Nowhere Man

Для генерации случайных чисел в Java есть класс java.util.Random, и его потомки:

Чтобы получить случайный выбор одного из двух значений 1 или 2 в дополнение к упомянутым, можно использовать разные методы:

// nextBoolean
public static int random1() { return new Random().nextBoolean() ? 1 : 2;}
public static int random2() { return ThreadLocalRandom.current().nextBoolean() ? 1 : 2;}

// Random::nextInt(toExcl)
public static int random3() { return 1 + new Random().nextInt(2);}
// ThreadLocalRandom::nextInt(fromIncl, toExcl)
public static int random4() { return ThreadLocalRandom.current().nextInt(1, 3);}
→ Ссылка