بيع جرعة
جزء من قسم الأساسيات في رحلة Lua على Coddy — الدرس 82 من 90.
التحدي
سهلأكمل مشروع متجر الوصفات الطبية السحرية (potion) الخاص بك عن طريق تنفيذ نظام معاملات المبيعات. بناءً على وظيفة البحث التي قمت بإنشائها، أنشئ نظامًا يعالج عملية بيع الـ potion عن طريق تقليل كمية الـ stock وتقديم تأكيد للمعاملة.
سيتم تقديم الإدخال التالي:
- سلسلة نصية تحتوي على اسم الـ potion المراد بيعه (sell)
استخدم حلقة for رقمية للتكرار عبر جدول inventory الخاص بك للعثور على الـ potion المحدد. عندما تحدد موقع الـ potion المطابق باستخدام عامل المساواة ==، قم بتخفيض قيمة الـ stock الخاصة به بمقدار 1 لمحاكاة البيع.
بعد تحديث الـ stock، اطبع رسالة تأكيد تعرض اسم الـ potion ومستوى الـ stock الجديد بالصيغة التالية:
Sold 1 [potion name]
Remaining stock: [new stock count]استخدم ربط السلاسل النصية (string concatenation) لدمج النص الوصفي مع اسم الـ potion وكمية الـ stock المحدثة. بعد معالجة الـ sale، استخدم عبارة break للخروج من الحلقة.
جرّب بنفسك
-- Inventory table with potion data
inventory = {
{name = "Health Potion", price = 15, stock = 8},
{name = "Mana Potion", price = 12, stock = 5},
{name = "Strength Potion", price = 25, stock = 3},
{name = "Speed Potion", price = 18, stock = 2}
}
-- Read the potion name to search for
search_name = io.read()
-- Use a numeric for loop to search through the inventory
for i = 1, #inventory do
if inventory[i].name == search_name then
print("Found: " .. inventory[i].name)
print("Price: " .. inventory[i].price .. " gold")
print("Stock: " .. inventory[i].stock .. " units")
break
end
endجميع دروس الأساسيات
4المعاملات 2: العمليات العلائقية والمنطقية
معاملات التساويالمعاملات العلائقيةالمعامل 'and'المعامل 'or'المعامل 'not'التقييم قصير الدائرةقيم Truthy و Falsyمراجعة - المنطق البسيط10الجداول الجزء 1: نمط القائمة
ما هو الجدول؟إنشاء جدولالوصول إلى العناصر عبر الفهرستعديل العناصر عبر الفهرسمعامل الطول '#'table.insert()table.remove()ملخص - إدارة أعضاء الفريق13مشروع: متجر جرعات بسيط
إعداد المشروعإضافة جرعة2المتغيرات وأنواع البيانات
ما هو المتغير؟الأرقامالسلاسل النصيةالقيم المنطقيةالقيمة 'nil'الدالة type()قواعد التسميةمراجعة - ملف الشخصية5الإخراج الأساسي
طباعة القيم الحرفيةطباعة المتغيراتطباعة قيم متعددةدمج النصوص والمتغيراتدالة tostring()الإدخال (Input)التحويل (Cast)مراجعة - تقرير الحالةمراجعة - حتى 1208أساسيات معالجة النصوص
string.len()string.upper و string.lowerstring.sub()string.rep()string.find()مراجعة - تنسيق اسم المستخدم3المعاملات 1: العمليات الحسابية والدمج
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسدمج النصوصأولوية المعاملاتملخص - حسابات بسيطة6مشروع: عرض إحصائيات الشخصية
رسالة ترحيبتعريف إحصائيات الشخصية9أساسيات الدوال
تعريف دالةاستدعاء دالةدوال مع معاملاتدوال بمعاملات متعددةجملة 'return'مراجعة - حاسبة المساحة12أساسيات الحلقات التكرارية
حلقة whileحلقة repeat-untilحلقة for الرقميةحلقة for مع خطوةجملة 'break'مراجعة - العد التنازلي