Bir Listeyi Karıştırma
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 8 / 65.
Bir listedeki öğelerin sırasını rastgele hale getirmeniz gerektiğinde, Dart shuffle() metodunu sunar. Bu metot, listedeki tüm öğeleri rastgele bir şekilde yeniden düzenleyerek oyunlar, simülasyonlar veya rastgele düzenlemelere ihtiyaç duyduğunuz her durum için mükemmel olan tahmin edilemez bir sıra oluşturur.
shuffle() metodu, tüm öğelerin konumlarını rastgele değiştirerek orijinal listeyi doğrudan değiştirir. shuffle() metodunu her çağırdığınızda, aynı öğelerin farklı bir dizilimini elde edersiniz.
List<String> cards = ['Ace', 'King', 'Queen', 'Jack'];
print('Original: $cards'); // [Ace, King, Queen, Jack]
cards.shuffle();
print('Shuffled: $cards'); // [Queen, Ace, Jack, King] (rastgele sıra)Bu yöntem; kart oyunları oluşturmak, test sorularını rastgele hale getirmek veya öğeleri öngörülemeyen bir sırayla sunmak istediğiniz herhangi bir uygulama için özellikle yararlıdır. shuffle() yerinde çalıştığı için yeni bir liste oluşturmanıza gerek yoktur; mevcut liste sizin için rastgele yeniden düzenlenir.
Görev
KolayTakımları rastgele eşleşmelere karıştırarak bir oyun turnuvası fikstürünü yöneten bir program oluşturun. Programınız şunları yapmalıdır:
- Turnuva adını temsil eden bir dize girişi okuyun (bu değer okunur ancak yazdırılmaz)
- Takım adlarını temsil eden birden fazla dize girişi okuyun (giriş, boş bir dize alındığında sona erer)
- Takımları rastgele bir sıraya göre karıştırın
- Her takım adını ayrı bir satıra yazdırın
Örneğin, turnuva adı "Local Cup" ve takımlar "Wolves", "Hawks" ise, programınız takım adlarını karıştırılmış (rastgele) bir sırada, her satıra bir tane gelecek şekilde yazdırmalıdır:
Hawks
WolvesVeya:
Wolves
Hawksshuffle() sırayı rastgele hale getirdiği için, takımların herhangi bir dizilimi geçerlidir.
Kopya kağıdı
shuffle() metodu, bir listedeki öğelerin sırasını rastgele hale getirir:
List<String> cards = ['Ace', 'King', 'Queen', 'Jack'];
print('Original: $cards'); // [Ace, King, Queen, Jack]
cards.shuffle();
print('Shuffled: $cards'); // [Queen, Ace, Jack, King] (rastgele sıra)shuffle() metodu, orijinal listeyi doğrudan değiştirir ve her çağrıldığında farklı bir rastgele düzen oluşturur.
Kendin dene
import 'dart:io';
void main() {
// Turnuva adını oku
String? tournamentName = stdin.readLineSync();
// Boş dize gelene kadar takım adlarını oku
List<String> teams = [];
String? teamName;
while ((teamName = stdin.readLineSync()) != null && teamName!.isNotEmpty) {
teams.add(teamName);
}
// TODO: Rastgele eşleşmeler için takımlar listesini karıştır
// Her takımı ayrı bir satıra yazdır
for (String team in teams) {
print(team);
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli Listesi