Menu
CoddyTech

Che cos'è un insieme?

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

Un insieme è una raccolta di valori unici: ogni valore è presente una sola volta oppure non è presente affatto. La domanda che fai a un insieme è «questo valore è un membro?». I distintivi che un giocatore ha guadagnato, i livelli già visitati e i nomi utente già scelti sono insiemi.

Un array conserva ogni copia che aggiungi:

var pickups := ["sword", "shield", "sword"]
print(pickups.size()) # 3

GDScript non ha un tipo Set. Invece, usi un dizionario: le sue chiavi sono univoche, quindi le chiavi sono gli elementi dell'insieme. I valori non vengono usati e, per convenzione, ogni valore è true:

var items := {"sword": true, "shield": true}
items["sword"] = true # è già un elemento: non cambia nulla
print(items.size()) # 2
print(items.keys()) # ["sword", "shield"]

keys() restituisce i membri come array, nell’ordine in cui sono stati aggiunti per la prima volta. Un insieme vuoto è un dizionario vuoto, {}.

Un letterale di insieme elenca ogni elemento una sola volta. Scrivere la stessa chiave due volte all'interno di {} è un errore che arresta il programma prima che venga eseguito.

Per rendere esplicito il tipo del set, usa un dizionario tipizzato: var badges: Dictionary[String, bool] = {}

challenge icon

Sfida

Facile

Un giocatore ha disputato quattro partite e ha ottenuto una medaglia in ciascuna. Alcune medaglie si ripetono. Il programma legge quattro righe di input, una per nome della medaglia.

Aggiungi ogni medaglia al set badges, poi stampa il numero di medaglie diverse e i membri del set come array. Per le medaglie Sniper, Medic, Sniper e Builder, l'output è:

Unique badges: 3
["Sniper", "Medic", "Builder"]

Provalo tu

extends Node

func _ready():
	var badges := {}
	for i in range(4):
		var badge := OS.read_string_from_stdin()
		# Añade la insignia al conjunto
		pass

	# Imprime la cantidad de insignias y las insignias
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