1 Câu hỏi: Sử dụng jfugue, làm cách nào để tạo các chuỗi nhạc ngẫu nhiên (sử dụng player.play) từ một mảng?

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang sử dụng Jfugue trong Eclipse và tôi có một danh sách các chuỗi âm nhạc trong mã. Khi tôi chạy mã, nó sẽ phát lại tất cả chúng, nhưng tôi muốn phát lại một lần theo thứ tự ngẫu nhiên.

Cho đến nay tôi đang sử dụng:

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

Tôi đã thử sử dụng "Random Random = new Random ();" Nhưng điều này đã không hoạt động và tôi không biết làm thế nào để thực hiện nó.

Tôi cũng đã thử kiện lại một trình tạo từ ngẫu nhiên:

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

Nhưng tôi không biết cách thay thế chuỗi từ bằng chuỗi âm nhạc:

Nói chung, hầu hết các vấn đề của tôi xuất phát từ việc không quen thuộc với cú pháp chính xác, đặc biệt là Jfugue.

    
3
  1. Gợi ý: A) bạn nên tuân theo các quy ước đặt tên java. Tôi giả sử rằng "Trình phát" là biến (cục bộ), vì vậy bạn nên đặt tên lớp đó là p (tên biến đi camelCase trong Java B) chỉ sử dụng các thẻ có liên quan đến câu hỏi của bạn. Loại IDE hoặc trình chỉnh sửa bạn sử dụng ... hoàn toàn không phù hợp với câu hỏi này.
    2019-05-09 05: 45: 30Z
1 Câu trả lời                              1                         

Đặt chúng vào một danh sách và sau đó xáo trộn rằng:

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

Và xin lưu ý: ở trên là java đơn giản và đơn giản, nó hoạt động độc lập với bất kỳ khung cụ thể nào, chẳng hạn như jfugue.

Để chơi, bạn chỉ cần yêu cầu người chơi chơi các mẫu bằng cách sử dụng thứ tự danh sách được xáo trộn của bạn:

// 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]);
    
2
2019-05-09 05: 43: 44Z
  1. @ WolfgangAADEusMozart Xem thông tin cập nhật của tôi. Giả sử rằng người chơi chơi "mẫu"; tất nhiên bạn phải bảo người chơi sử dụng thứ tự từ danh sách ngẫu nhiên mà bạn đặt cùng nhau!
    2019-05-09 05: 39: 03Z
  2. @ WolfgangAADEusMozart Tôi không phải là chuyên gia về jfugue, do đó tôi không thể cho bạn biết sự khác biệt giữa: A) gọi play () nhiều lần trong vòng lặp và B ) gọi nó một lần, truyền một mảng các giá trị. Cả hai giải pháp, cuối cùng, chơi cùng một "tập hợp" các mẫu. Nhưng A) gọi phương thức nhiều lần và B) chỉ gọi nó một lần.
    2019-05-09 14: 48: 33Z
  3. @ WolfgangAADEusMozart Và để trả lời câu hỏi khác của bạn: những gì tôi đã chỉ cho bạn ... nên chơi một thứ tự ngẫu nhiên mỗi lần. Khi bạn gọi shuffle () và bạn có đủ các yếu tố trong danh sách đó ... bạn sẽ nhận được một thứ tự khác nhau mỗi lần. Vì vậy, nếu mã hiện tại của bạn không làm những gì bạn muốn ... vui lòng viết một câu hỏi mới, bao gồm mã hiện tại và giải thích những gì xảy ra ở đó và làm thế nào nó bất ngờ. Vui lòng tránh sử dụng các bình luận để trở lại với nhiều câu hỏi hơn. Đó không phải là cách trang web này dự định mọi thứ sẽ xảy ra.
    2019-05-09 14: 49: 55Z
nguồn đặt đây