Menu
CoddyTech

Qu’est-ce qu’un ensemble ?

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 31 sur 78.

Un ensemble est une collection de valeurs uniques : chaque valeur y figure une seule fois ou pas du tout. La question que tu poses à un ensemble est « cette valeur en est-elle membre ? ». Les badges qu’un joueur a obtenus, les niveaux déjà visités et les noms d’utilisateur déjà pris sont des ensembles.

Un tableau conserve chaque copie que vous ajoutez :

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

GDScript n’a pas de type Set. À la place, tu utilises un dictionnaire : ses clés sont uniques, donc les clés sont les éléments de l’ensemble. Les valeurs ne sont pas utilisées et, par convention, chaque valeur est true :

var items := {"sword": true, "shield": true}
items["sword"] = true # déjà un élément : rien ne change
print(items.size()) # 2
print(items.keys()) # ["sword", "shield"]

keys() renvoie les éléments sous forme de tableau, dans l’ordre où ils ont été ajoutés pour la première fois. Un ensemble vide est un dictionnaire vide, {}.

Un littéral d’ensemble énumère chaque élément une seule fois. Écrire deux fois la même clé dans {} provoque une erreur qui arrête le programme avant son exécution.

Pour expliciter le type de l’ensemble, utilisez un dictionnaire typé : var badges: Dictionary[String, bool] = {}

challenge icon

Défi

Facile

Un joueur a disputé quatre matchs et a gagné un badge à chaque fois. Certains badges se répètent. Le programme lit quatre lignes d’entrée, un nom de badge par ligne.

Ajoute chaque badge à l’ensemble badges, puis affiche le nombre de badges différents et les éléments de l’ensemble sous forme de tableau. Pour les badges Sniper, Medic, Sniper et Builder, la sortie est :

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

Essayez vous-même

extends Node

func _ready():
	var badges := {}
	for i in range(4):
		var badge := OS.read_string_from_stdin()
		# Ajoute le badge à l'ensemble
		pass

	# Affiche le nombre de badges et les badges
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur GDScript en ligne