Menu
CoddyTech

Lagerbestand aktualisieren

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 73 von 78.

challenge icon

Aufgabe

Einfach

Füge den Befehl update hinzu. Behalte alles bei, was du in den vorherigen Schritten geschrieben hast.

Eine Zeile wie update Apple -20 addiert -20 zum Bestand von Apple: Eine positive Menge entspricht einer Lieferung, eine negative entnimmt Artikel.

Schreibe die Funktion update_stock(inventory, item, quantity) oberhalb von _ready():

  1. Wenn der Artikel nicht in inventory enthalten ist, gib Error: Item 'Orange' not found. aus (mit dem Artikelnamen).
  2. Wenn der neue Bestand negativ wäre, gib Error: Insufficient stock for 'Apple'. aus und behalte den alten Bestand bei.
  3. Andernfalls speichere den neuen Bestand und gib Stock for 'Apple' updated successfully. aus.

Füge in der Schleife einen elif-Zweig für update hinzu:

  • Wenn die Zeile nicht genau 3 Teile enthält, gib Error: Use update ITEM QUANTITY aus.
  • Wenn die Menge keine ganze Zahl ist, gib Error: Quantity must be an integer. aus.
  • Andernfalls rufe update_stock() auf.

Für die Befehle add Apple 0.5 100, add Banana 0.2 50, add Apple 0.6 30, update Apple -20, update Banana 30, update Orange 10, update Apple -90, show und exit lautet die Ausgabe:

Inventory Management System
Item 'Apple' added successfully.
Item 'Banana' added successfully.
Error: Item 'Apple' already exists.
Stock for 'Apple' updated successfully.
Stock for 'Banana' updated successfully.
Error: Item 'Orange' not found.
Error: Insufficient stock for 'Apple'.
{ "Apple": { "price": 0.5, "stock": 80 }, "Banana": { "price": 0.2, "stock": 80 } }
Goodbye!

Probier es selbst

extends Node

func add_item(inventory: Dictionary, item: String, price: float, stock: int) -> void:
	if inventory.has(item):
		print("Error: Item '%s' already exists." % item)
		return
	inventory[item] = {"price": price, "stock": stock}
	print("Item '%s' added successfully." % item)

func _ready():
	# Das Inventar: Artikelname -> {"price": float, "stock": int}
	var inventory := {}
	print("Inventory Management System")

	while true:
		var line := OS.read_string_from_stdin()
		var parts := line.split(" ")
		var command := parts[0]

		if command == "exit":
			print("Goodbye!")
			break
		elif command == "show":
			print(inventory)
		elif command == "add":
			if parts.size() != 4:
				print("Error: Use add ITEM PRICE STOCK")
			elif not parts[2].is_valid_float() or not parts[3].is_valid_int():
				print("Error: Price and stock must be numeric.")
			else:
				add_item(inventory, parts[1], float(parts[2]), int(parts[3]))
		else:
			print("Unknown command")

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler