Menu
CoddyTech

Aggiornare le scorte

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 73 di 78.

challenge icon

Sfida

Facile

Aggiungi il comando update. Mantieni tutto ciò che hai scritto nei passaggi precedenti.

Una riga come update Apple -20 aggiunge -20 alle scorte di Apple: una quantità positiva è una consegna, una negativa toglie articoli.

Scrivi la funzione update_stock(inventory, item, quantity) sopra _ready():

  1. Se l'articolo non è in inventory, stampa Error: Item 'Orange' not found. (con il nome dell'articolo)
  2. Se le nuove scorte diventassero negative, stampa Error: Insufficient stock for 'Apple'. e mantieni le scorte precedenti
  3. Altrimenti, memorizza le nuove scorte e stampa Stock for 'Apple' updated successfully.

Nel ciclo, aggiungi un ramo elif per update:

  • Se la riga non ha esattamente 3 parti, stampa Error: Use update ITEM QUANTITY
  • Se la quantità non è un numero intero, stampa Error: Quantity must be an integer.
  • Altrimenti, chiama update_stock()

Per i comandi 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 e exit, l'output è:

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!

Provalo tu

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():
	# L'inventario: nome dell'articolo -> {"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")

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online