Küme Nedir?
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 31 / 78.
küme, benzersiz değerlerden oluşan bir koleksiyondur: her değer ya içinde bir kez bulunur ya da hiç bulunmaz. Bir kümeye soracağın soru şudur: "bu değer bir üye mi?". Bir oyuncunun kazandığı rozetler, daha önce ziyaret edilen seviyeler ve alınmış kullanıcı adları kümelerdir.
Bir dizi, eklediğiniz her kopyayı saklar:
var pickups := ["sword", "shield", "sword"]
print(pickups.size()) # 3GDScript'te Set türü yoktur. Bunun yerine bir sözlük kullanırsın: anahtarları benzersizdir, dolayısıyla kümenin üyeleri anahtarlardır. Değerler kullanılmaz ve geleneksel olarak her değer true olur:
var items := {"sword": true, "shield": true}
items["sword"] = true # zaten bir üye: hiçbir şey değişmez
print(items.size()) # 2
print(items.keys()) # ["sword", "shield"]keys(), üyeleri ilk eklendikleri sırayla bir dizi olarak döndürür. Boş bir küme, boş bir sözlüktür: {}.
Küme sabiti her üyeyi bir kez listeler. {} içinde aynı anahtarı iki kez yazmak, programın çalışmadan önce durmasına neden olan bir hatadır.
Kümenin türünü açıkça belirtmek için tür belirtilmiş bir sözlük kullanın: var badges: Dictionary[String, bool] = {}
Görev
KolayBir oyuncu dört maç oynadı ve her maçta bir rozet kazandı. Bazı rozetler tekrar ediyor. Program, her satırda bir rozet adı olacak şekilde dört satır girdi okur.
Her rozeti badges kümesine ekle, ardından farklı rozetlerin sayısını ve kümenin üyelerini bir dizi olarak yazdır. Rozetler Sniper, Medic, Sniper ve Builder olduğunda çıktı şöyledir:
Unique badges: 3
["Sniper", "Medic", "Builder"]Kendin dene
extends Node
func _ready():
var badges := {}
for i in range(4):
var badge := OS.read_string_from_stdin()
# Rozeti kümeye ekle
pass
# Rozet sayısını ve rozetleri yazdır
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi