Değerleri Toplama
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 49 / 78.
GDScript'te bir dizinin değerlerini toplayan yerleşik bir işlev yoktur. Değerleri bir döngü ve birikimli toplam ile toplarsın; bu, 0 ile başlayan ve her değerle artan bir değişkendir:
var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
total += amount
print(total) # 100Değerleri başlangıç miktarına eklemek için toplamı oradan başlatın. Seviye bitmeden önce 40 altını olan bir oyuncu, seviyenin sonunda 140 altına sahip olur:
var total := 40
for amount in coins:
total += amount
print(total) # 140Aynı döngü, values() üzerinde dolaşırken bir sözlüğün değerlerini toplar ve bir dizideki her sözlüğün bir alanını okurken o alanın değerlerini toplar:
var inventory := {"potion": 3, "arrow": 20, "bomb": 2}
var items := 0
for count in inventory.values():
items += count
print(items) # 25
var party := [{"hero": "Mia", "hp": 80}, {"hero": "Leo", "hp": 65}]
var party_hp := 0
for member in party:
party_hp += member["hp"]
print(party_hp) # 145Grup başına bir toplam elde etmek için toplamları bir sözlükte tutun. Varsayılan 0 değeriyle get(), henüz toplamı olmayan bir grubu ele alır:
var loot := [["gold", 10], ["gems", 2], ["gold", 25]]
var totals := {}
for drop in loot:
totals[drop[0]] = totals.get(drop[0], 0) + drop[1]
print(totals) # { "gold": 35, "gems": 2 }Ortalama için toplamı değer sayısına bölün ve ondalıkların korunması için önce float türüne dönüştürün: float(total) / coins.size().
Görev
KolayBir mağaza, günün sonunda kasasındaki toplam tutarı öğrenmek istiyor. Program iki satır okur:
- Günün satışları; boşluklarla ayrılmış tam sayılar. Hiç satış yapılmadığında satır boştur.
- Günün başında kasada bulunan para (bir tam sayı).
Her satışı başlangıçtaki paraya ekleyin ve sonucu Total: ifadesinden sonra yazdırın. 100 200 150 300 ve 50 girdileri için çıktı şöyledir:
Total: 800Kendin dene
extends Node
func _ready():
var sales := OS.read_string_from_stdin().split(" ", false)
var starting_cash := int(OS.read_string_from_stdin())
# Her satışı başlangıçtaki nakit tutarına ekle ve toplamı yazdır
pass
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