Menu
CoddyTech

Ajouter et supprimer

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

Pour ajouter un membre, affectez true à sa clé. Ajouter un membre qui se trouve déjà dans l’ensemble ne change rien. Donc, si vous avez besoin de savoir s’il est nouveau, vérifiez d’abord avec has() :

var inventory := {"rope": true}
if inventory.has("torch"):
	print("Already have torch")
else:
	inventory["torch"] = true
	print("Added torch")

Pour supprimer un membre, appelle erase(). Cette méthode renvoie true si le membre a été supprimé et false s’il ne faisait pas partie de l’ensemble. L’absence d’un membre n’est jamais une erreur :

print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }

Comme erase() renvoie une valeur booléenne, tu peux l’utiliser directement comme condition : if inventory.erase("map"): exécute son bloc uniquement lorsque "map" était un membre.

clear() supprime tous les éléments, size() les compte et is_empty() vaut true pour un ensemble qui ne contient aucun élément.

challenge icon

Défi

Facile

Le programme lit des commandes, une par ligne, jusqu’à la ligne done. Chaque commande est add ITEM ou remove ITEM. Le code de départ sépare déjà chaque commande en action et item.

  • Pour add : si l’élément est nouveau, ajoute-le à l’ensemble inventory et affiche Added ITEM. Sinon, affiche Already have ITEM.
  • Pour remove : si l’élément se trouve dans l’ensemble, supprime-le et affiche Removed ITEM. Sinon, affiche No ITEM to remove.

Après done, affiche Inventory: suivi des éléments joints avec , , ou Inventory: empty si l’ensemble est vide. Pour l’entrée :

add torch
add rope
add torch
remove map
remove rope
done

la sortie est :

Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torch

Essayez vous-même

extends Node

func _ready():
	var inventory := {}
	while true:
		var command := OS.read_string_from_stdin()
		if command == "done":
			break
		var parts := command.split(" ")
		var action := parts[0]
		var item := parts[1]
		# Ajoute ou retire l’objet

	# Affiche l’inventaire
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