Menu
CoddyTech

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) # 100

Değ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) # 140

Aynı 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) # 145

Grup 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().

challenge icon

Görev

Kolay

Bir mağaza, günün sonunda kasasındaki toplam tutarı öğrenmek istiyor. Program iki satır okur:

  1. Günün satışları; boşluklarla ayrılmış tam sayılar. Hiç satış yapılmadığında satır boştur.
  2. 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: 800

Kendin 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
quiz iconKendini test et

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

Kendi başına pratik yap: Online GDScript derleyicisi