Как рандомизировать массив так, чтобы значение печаталось на x% за раз? - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь сделать простой игровой автомат в Java. Однако я не знаю, как рандомизировать массив так, чтобы определенное значение массива возвращалось для x% за раз.

Например, для кода ниже, я хочу рандомизировать результат, учитывая, что Fishвернет 40%, Дракон вернет 30%, Шутка вернет 25%, а Джекпот вернет 5% за раз.

public class SlotMachine{
  public static void main(String args[]){
    String array[] = {"Fish", "Dragon", "Joker", "Jackpot"};    
  }
}

Ответы [ 2 ]

4 голосов
/ 03 октября 2019

Просто сгенерируйте случайное число от 0 до 1, а затем выберите элемент массива в соответствии с желаемой логикой:

double rand = Math.random();
String choice;
if (rand < 0.05) {
    choice = array[3];
}
else if (rand < 0.30) {
    choice = array[2];
}
else if (rand < 0.60) {
    choice = array[1];
}
else {
    choice = array[0];
}

System.out.println(choice);
0 голосов
/ 03 октября 2019

попробуйте что-то вроде этого:

import java.util.Random

public class SlotMachine{
  public static void main(String args[]){
    String array[] = {"Fish", "Dragon", "Joker", "Jackpot"};
    Random rand = new Random();

    // Obtain a number between [0 - 100].
    if (rand.nextInt(100) <= 40) System.out.print('Fish ')
    if (rand.nextInt(100) <= 30) System.out.print('Dragon ')
    if (rand.nextInt(100) <= 25) System.out.print('Joker')
    if (rand.nextInt(100) <= 5) System.out.print('Jackpot')
  }
}

...