Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Das 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 Menge inventory hinzu und gib Added ITEM aus. Gib andernfalls Already have ITEM aus.
  • Für remove: Wenn das Element in der Menge enthalten ist, entferne es und gib Removed ITEM aus. Gib andernfalls No ITEM to remove aus.

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
done

lautet die Ausgabe:

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

Probier 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
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler