Menu
CoddyTech
flag Ar iconالعربيةdown icon

التحقق من التوفر

جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 74 من 78.

challenge icon

التحدي

سهل

أضف الأمر check. احتفظ بكل ما كتبته في الخطوات السابقة.

اكتب الدالة check_availability(inventory, item) فوق _ready(). لا تطبع أي شيء وتُعيد قيمة من النوع int:

  • مخزون العنصر، عندما يكون العنصر في inventory
  • -1 عندما يكون العنصر غير موجود. لا تكون كمية المخزون سالبة أبدًا، لذا لا يمكن أن تعني -1 إلا "not found".

في الحلقة، سطر مثل check Apple:

  • يطبع Error: Use check ITEM عندما لا يحتوي على 2 جزء بالضبط
  • وإلا يستدعي check_availability() ويطبع Item not found إذا كانت القيمة -1، أو اسم العنصر و: وكمية المخزون و in stock

بالنسبة إلى الأوامر add Apple 0.5 100 وadd Banana 0.2 50 وupdate Apple -20 وupdate Banana 30 وcheck Apple وcheck Banana وcheck Orange وexit، يكون الناتج:

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!

جرّب بنفسك

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():
	# المخزون: اسم العنصر -> {"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")

جميع دروس المنطق وتدفّق التنفيذ

تدرّب بنفسك: مترجم GDScript عبر الإنترنت