Menu
CoddyTech

Somma dei valori

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 49 di 78.

GDScript non ha una funzione integrata che somma un array. Aggiungi i valori con un ciclo e un totale progressivo, una variabile che parte da 0 e cresce con ogni valore:

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

Per aggiungere i valori a un importo iniziale, inizia da lì il totale. Un giocatore che aveva 40 monete prima del livello finisce con 140:

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

Lo stesso ciclo somma i valori di un dizionario quando scorre values() e somma un campo di ogni dizionario in un array quando legge quel campo:

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

Per ottenere un totale per ogni gruppo, conserva i totali in un dizionario. get() con il valore predefinito 0 gestisce un gruppo che non ha ancora un totale:

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 }

Per calcolare la media, dividi il totale per il numero di valori e converti prima in float, così i decimali vengono mantenuti: float(total) / coins.size().

challenge icon

Sfida

Facile

Un negozio vuole conoscere il totale nella cassa alla fine della giornata. Il programma legge due righe:

  1. Le vendite della giornata, numeri interi separati da spazi. La riga è vuota se non ci sono state vendite.
  2. Il denaro che si trovava nella cassa all'inizio della giornata (un numero intero).

Aggiungi ogni vendita al denaro iniziale e stampa il risultato dopo Total: . Per gli input 100 200 150 300 e 50, l'output è:

Total: 800

Provalo tu

extends Node

func _ready():
	var sales := OS.read_string_from_stdin().split(" ", false)
	var starting_cash := int(OS.read_string_from_stdin())
	# Aggiungi ogni vendita al denaro iniziale e stampa il totale
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online