تحديث المخزون
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 73 من 78.
التحدي
سهلأضف الأمر update. احتفظ بكل ما كتبته في الخطوات السابقة.
سطر مثل update Apple -20 يضيف -20 إلى مخزون Apple: الكمية الموجبة تعني توريدًا، أما الكمية السالبة فتُخرج عناصر من المخزون.
اكتب الدالة update_stock(inventory, item, quantity) فوق _ready():
- إذا لم يكن العنصر موجودًا في
inventory، اطبعError: Item 'Orange' not found.(مع اسم العنصر) - إذا كان المخزون الجديد سيصبح سالبًا، اطبع
Error: Insufficient stock for 'Apple'.واحتفظ بالمخزون القديم - وإلا، خزّن المخزون الجديد واطبع
Stock for 'Apple' updated successfully.
في الحلقة، أضف فرع elif للأمر update:
- إذا لم يكن السطر يحتوي على
3أجزاء بالضبط، اطبعError: Use update ITEM QUANTITY - إذا لم تكن الكمية عددًا صحيحًا، اطبع
Error: Quantity must be an integer. - وإلا، استدعِ
update_stock()
للأوامر 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 وexit، يكون الناتج:
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!جرّب بنفسك
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():
# المخزون: اسم العنصر -> {"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")
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت