Menu
CoddyTech

Verfügbarkeit prüfen

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

challenge icon

Aufgabe

Einfach

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

Schreibe die Funktion check_availability(inventory, item) oberhalb von _ready(). Sie gibt nichts aus und gibt einen int zurück:

  • den Lagerbestand des Artikels, wenn sich der Artikel in inventory befindet
  • -1, wenn der Artikel fehlt. Ein Lagerbestand ist nie negativ, daher kann -1 nur „not found“ bedeuten.

In der Schleife bewirkt eine Zeile wie check Apple Folgendes:

  • Sie gibt Error: Use check ITEM aus, wenn sie nicht genau 2 Teile enthält
  • andernfalls ruft sie check_availability() auf und gibt bei -1 Item not found aus, oder den Artikelnamen, : , den Lagerbestand und in stock

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

Inventory Management System
Item 'Apple' added successfully.
Item 'Banana' added successfully.
Stock for 'Apple' updated successfully.
Stock for 'Banana' updated successfully.
Apple: 80 in stock
Banana: 80 in stock
Item not found
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 update_stock(inventory: Dictionary, item: String, quantity: int) -> void:
	if not inventory.has(item):
		print("Error: Item '%s' not found." % item)
		return
	var new_stock: int = inventory[item]["stock"] + quantity
	if new_stock < 0:
		print("Error: Insufficient stock for '%s'." % item)
		return
	inventory[item]["stock"] = new_stock
	print("Stock for '%s' updated 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]))
		elif command == "update":
			if parts.size() != 3:
				print("Error: Use update ITEM QUANTITY")
			elif not parts[2].is_valid_int():
				print("Error: Quantity must be an integer.")
			else:
				update_stock(inventory, parts[1], int(parts[2]))
		else:
			print("Unknown command")

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler