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()) # 3GDScript 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] = {}
Défi
FacileUn 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
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
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne