Mengacak list
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 8 dari 65.
Saat kamu perlu mengacak urutan elemen dalam list, Dart menyediakan method shuffle(). Method ini menyusun ulang semua elemen dalam list secara acak, sehingga menghasilkan urutan yang tidak dapat diprediksi dan cocok untuk game, simulasi, atau situasi apa pun yang memerlukan susunan acak.
method shuffle() mengubah list asli secara langsung dengan mengacak posisi semua elemennya. Setiap kali kamu memanggil shuffle(), kamu akan mendapatkan susunan berbeda dari elemen yang sama.
List<String> cards = ['Ace', 'King', 'Queen', 'Jack'];
print('Original: $cards'); // [Ace, King, Queen, Jack]
cards.shuffle();
print('Shuffled: $cards'); // [Queen, Ace, Jack, King] (urutan acak)method ini sangat berguna untuk membuat permainan kartu, mengacak pertanyaan kuis, atau aplikasi apa pun yang menampilkan item dalam urutan yang tidak dapat diprediksi. Karena shuffle() mengubah list secara langsung, kamu tidak perlu membuat list baru: list yang sudah ada akan diacak untukmu.
Tantangan
MudahBuat program yang mengelola bagan turnamen dengan mengacak tim ke dalam pertandingan secara acak. Programmu harus:
- Membaca input string yang menunjukkan nama turnamen (nilai ini dibaca, tetapi tidak dicetak)
- Membaca beberapa input string yang menunjukkan nama tim (input berakhir saat menerima string kosong)
- Mengacak urutan tim
- Mencetak setiap nama tim pada baris terpisah
Misalnya, jika nama turnamennya adalah "Local Cup" dan timnya adalah "Wolves", "Hawks", programmu harus menampilkan nama-nama tim dalam urutan acak, satu nama per baris:
Hawks
WolvesAtau:
Wolves
HawksKarena shuffle() mengacak urutan, susunan tim apa pun dianggap valid.
Coba sendiri
import 'dart:io';
void main() {
// Baca nama turnamen
String? tournamentName = stdin.readLineSync();
// Baca nama tim hingga menemukan string kosong
List<String> teams = [];
String? teamName;
while ((teamName = stdin.readLineSync()) != null && teamName!.isNotEmpty) {
teams.add(teamName);
}
// TODO: Acak list tim untuk menentukan pasangan pertandingan secara acak
// Cetak setiap tim pada baris terpisah
for (String team in teams) {
print(team);
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online