Menu
CoddyTech

Sumowanie wartości

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 49 z 78.

GDScript nie ma wbudowanej funkcji, która sumuje elementy tablicy. Dodajesz wartości za pomocą pętli i sumy bieżącej — zmiennej, która zaczyna od 0 i zwiększa się o każdą wartość:

var coins := [12, 30, 8, 50]
var total := 0
for amount in coins:
	total += amount
print(total) # 100

Aby dodać wartości do kwoty początkowej, zacznij od tej kwoty. Gracz, który miał 40 monet, kończy poziom z 140:

var total := 40
for amount in coins:
	total += amount
print(total) # 140

Ta sama pętla sumuje wartości słownika, gdy przechodzi przez values(), i sumuje jedno pole każdego słownika w tablicy, gdy odczytuje to pole:

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

Aby uzyskać jedną sumę dla każdej grupy, przechowuj sumy w słowniku. get() z domyślną wartością 0 obsługuje grupę, która nie ma jeszcze sumy:

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 }

Aby obliczyć średnią, podziel sumę przez liczbę wartości i najpierw przekonwertuj ją na float, aby zachować część dziesiętną: float(total) / coins.size().

challenge icon

Wyzwanie

Łatwy

Sklep chce znać łączną kwotę w kasie na koniec dnia. Program odczytuje dwa wiersze:

  1. Sprzedaż z danego dnia — liczby całkowite oddzielone spacjami. Wiersz jest pusty, jeśli nie było żadnej sprzedaży.
  2. Gotówkę, która była w kasie na początku dnia (liczba całkowita).

Dodaj każdą sprzedaż do początkowej kwoty i wypisz wynik po Total: . Dla danych wejściowych 100 200 150 300 i 50 wynik to:

Total: 800

Spróbuj swoich sił

extends Node

func _ready():
	var sales := OS.read_string_from_stdin().split(" ", false)
	var starting_cash := int(OS.read_string_from_stdin())
	# Dodaj każdą kwotę sprzedaży do początkowej kwoty gotówki i wypisz sumę
	pass
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online