Hinzufügen und Entfernen
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 33 von 78.
Um ein Mitglied hinzuzufügen, weise seinem Schlüssel true zu. Das Hinzufügen eines Mitglieds, das bereits in der Menge enthalten ist, ändert nichts. Wenn du also wissen musst, ob es neu war, prüfe zuerst mit has():
var inventory := {"rope": true}
if inventory.has("torch"):
print("Already have torch")
else:
inventory["torch"] = true
print("Added torch")Um ein Element zu entfernen, rufe erase() auf. Es gibt true zurück, wenn das Element entfernt wurde, und false, wenn es nicht in der Menge enthalten war. Ein fehlendes Element ist niemals ein Fehler:
print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }Da erase() einen booleschen Wert zurückgibt, kannst du es direkt als Bedingung verwenden: if inventory.erase("map"): führt seinen Block nur aus, wenn "map" ein Element war.
clear() entfernt alle Elemente, size() zählt sie und is_empty() ist bei einer Menge ohne Elemente true.
Aufgabe
EinfachDas Programm liest Befehle ein, einen pro Zeile, bis zur Zeile done. Jeder Befehl lautet add ITEM oder remove ITEM. Der Startcode teilt jeden Befehl bereits in action und item auf.
- Für
add: Wenn das Element neu ist, füge es der Mengeinventoryhinzu und gibAdded ITEMaus. Gib andernfallsAlready have ITEMaus. - Für
remove: Wenn das Element in der Menge enthalten ist, entferne es und gibRemoved ITEMaus. Gib andernfallsNo ITEM to removeaus.
Gib nach done Inventory: aus, gefolgt von den mit , verbundenen Elementen, oder Inventory: empty, wenn die Menge leer ist. Für die Eingabe:
add torch
add rope
add torch
remove map
remove rope
donelautet die Ausgabe:
Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torchProbier es selbst
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]
# Füge den Gegenstand hinzu oder entferne ihn
# Gib das Inventar aus
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler