Menu
CoddyTech

Mettre à jour le stock

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 73 sur 78.

challenge icon

Défi

Facile

Ajoute la commande update. Garde tout ce que tu as écrit dans les étapes précédentes.

Une ligne comme update Apple -20 ajoute -20 au stock de Apple : une quantité positive correspond à une livraison, une quantité négative retire des articles.

Écris la fonction update_stock(inventory, item, quantity) au-dessus de _ready() :

  1. Si l’article ne se trouve pas dans inventory, affiche Error: Item 'Orange' not found. (avec le nom de l’article)
  2. Si le nouveau stock serait négatif, affiche Error: Insufficient stock for 'Apple'. et conserve l’ancien stock
  3. Sinon, enregistre le nouveau stock et affiche Stock for 'Apple' updated successfully.

Dans la boucle, ajoute une branche elif pour update :

  • Si la ligne ne comporte pas exactement 3 éléments, affiche Error: Use update ITEM QUANTITY
  • Si la quantité n’est pas un nombre entier, affiche Error: Quantity must be an integer.
  • Sinon, appelle update_stock()

Pour les commandes 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 et exit, la sortie est :

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!

Essayez vous-même

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’inventaire : nom de l’article -> {"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")

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur GDScript en ligne