Используя jfugue, как я могу генерировать случайные музыкальные строки (используя player.play) из массива? - PullRequest
3 голосов
/ 08 мая 2019

Я использую Jfugue в Eclipse, и у меня есть список музыкальных строк в коде.Когда я запускаю код, он воспроизводит их все, но я хочу воспроизводить по одному в случайном порядке.

Пока что я использую:

Pattern pattern = new Pattern ("A");
Player.play(A);
Pattern pattern = new Pattern ("B");
Player.play(B);

Я пытался использовать "Random random = new Random ();"Но это не сработало, и я не знаю, как это реализовать.

Я также пытался повторно использовать генератор случайных слов:

  for(int i = 0; i < numberOfTest; i++) {
    int index = (int)(Math.random() * 10);
    System.out.println(strings[index]);

Но я нене знаю, как заменить строки слов музыкальными строками:

В целом, большинство моих проблем проистекают из-за недостатка знаний о правильном синтаксисе, особенно Jfugue.

1 Ответ

2 голосов
/ 08 мая 2019

Поместите их в список, а затем перемешайте, что:

List<Pattern> allPatterns = Arrays.asList(new Pattern ("A"), new Pattern ("B"), ... more patterns);
Collections.shuffle(allPatterns);

И, пожалуйста, обратите внимание: вышеприведенный текст является простым и простым Java, он работает независимо от какой-либо конкретной платформы, такой как jfugue.

Для игры вы просто должны сказать игроку, чтобы он проигрывал паттерны, используя порядок вашего перетасованного списка:

// by using the for-each loop
for (Pattern onePattern : allPatterns) {
   player.play(onePattern);
}

// alternatively, turn the list back into an array and play that
player.play(allPatterns.toArray(new Pattern[0]);
...