Ekleme ve Silme
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 33 / 78.
Bir üyeyi eklemek için anahtarına true atayın. Kümede zaten bulunan bir üyeyi eklemek hiçbir şeyi değiştirmez; bu nedenle yeni olup olmadığını öğrenmeniz gerektiğinde önce has() ile kontrol edin:
var inventory := {"rope": true}
if inventory.has("torch"):
print("Already have torch")
else:
inventory["torch"] = true
print("Added torch")Bir üyeyi kaldırmak için erase() çağırın. Üye kaldırıldığında true, kümede olmadığında ise false döndürür. Eksik bir üye hiçbir zaman hata değildir:
print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }erase() bir boole değeri döndürdüğü için, onu doğrudan koşul olarak kullanabilirsin: if inventory.erase("map"): bloğu yalnızca "map" bir üyeyse çalışır.
clear() her üyeyi kaldırır, size() onları sayar ve hiç üyesi olmayan bir küme için is_empty() değeri true olur.
Görev
KolayProgram, done satırına kadar her satırda bir komut okur. Her komut add ITEM veya remove ITEM biçimindedir. Başlangıç kodu, her komutu zaten action ve item olarak ayırır.
addiçin: öğe yeniyse onuinventorykümesine ekleyin veAdded ITEMyazdırın. Aksi takdirdeAlready have ITEMyazdırın.removeiçin: öğe kümedeyse onu kaldırın veRemoved ITEMyazdırın. Aksi takdirdeNo ITEM to removeyazdırın.
done satırından sonra Inventory: yazdırın ve bunu üyeleri , ile birleştirerek devam ettirin; küme boşsa Inventory: empty yazdırın. Girdi şöyleyse:
add torch
add rope
add torch
remove map
remove rope
doneçıktı şöyledir:
Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torchKendin dene
extends Node
func _ready():
var inventory := {}
while true:
var command := OS.read_string_from_stdin()
if command == "done":
break
var parts := command.split(" ")
var action := parts[0]
var item := parts[1]
# Öğeyi ekle veya kaldır
# Envanteri 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