Я делаю игру в рулетку, я создал Arraylist для слотов, они были определены в упорядоченном списке, есть 38 слотов с позициями (0-37), цветом и номером.
В «Методе вращения» я пытаюсь выбрать случайный начальный слот из коллекции/списка колес, а затем прокручивать некоторые слоты на основе функции задержки.
Как мне выбрать случайный слот из моей коллекции, чтобы начать этот процесс?
Моя коллекция
List<Slot> wheel = new ArrayList<Slot>();
GameEngine gameEngine;
public GameEngineImpl() {
Color colorArray[] = new Color[] { Color.GREEN00, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED,
Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED,
Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.GREEN0, Color.BLACK, Color.RED,
Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED,
Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED, Color.BLACK, Color.RED };
int numberArray[] = new int[] { 00, 27, 10, 25, 29, 12, 8, 19, 31, 18, 6, 21, 33, 16, 4, 23, 35, 14, 2, 0, 28,
9, 26, 30, 11, 7, 20, 32, 17, 5, 22, 34, 15, 3, 24, 36, 13, 1 };
for (int position = 0; position < 38; position++) {
wheel.add(new SlotImpl(position, colorArray[position], numberArray[position]));
}
}
Метод вращения
@Override
public void spin(int initialDelay, int finalDelay, int delayIncrement) {
Slot slot;
while (initialDelay < finalDelay) {
// TODO selecting a random starting slot on the wheel
}
}
// Delay function
delay(delayIncrement);
// Increase increment
initialDelay += delayIncrement;
}
}
// Method to delay spinning
private void delay(int delay) {
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}




Вы можете использовать Random::nextInt для генерации случайного целого числа:
int random = new java.util.Random().nextInt(38);
//nextInt: int value between 0 (inclusive) and the specified value (exclusive)
Чтобы перебирать элементы, вы можете использовать либо поток, либо цикл for. Ниже приведен пример потока:
wheel.subList(random, 37).stream().forEach(e -> {
// e is the element
});
for петля:
for(int i = random; i < 38; i++) {
var e = wheel.get(i); // e is the element
}
Два простых варианта:
«Как мне сделать что-то случайный в Java» Вы ищете в Интернете
java random, читаете статьи и узнаете, как это сделать.