بيع جرعة
جزء من قسم الأساسيات في رحلة Lua على Coddy. الدرس 82 من 90.
التحدي
سهلأكمل مشروع متجر الجرعات بتنفيذ نظام لمعاملات البيع. استنادًا إلى وظيفة البحث التي أنشأتها، أنشئ نظامًا يعالج بيع جرعة من خلال تقليل كمية المخزون وتقديم تأكيد للمعاملة.
سيُقدَّم الإدخال التالي:
- سلسلة نصية تحتوي على اسم الجرعة المراد بيعها
استبدل عبارات الطباعة Found وPrice وStock من الخطوة السابقة بعملية البيع، بحيث لا تُطبع سوى سطري البيع أدناه. اقرأ اسم الجرعة باستخدام io.read() واحدة: كل تشغيل يوفّر سطرًا واحدًا من الإدخال.
استخدم حلقة for رقمية للتكرار عبر جدول inventory للعثور على الجرعة المحددة. عندما تعثر على الجرعة المطابقة باستخدام عامل المساواة ==، قلّل قيمة stock بمقدار 1 لمحاكاة البيع.
بعد تحديث المخزون، اطبع رسالة تأكيد تعرض اسم الجرعة ومستوى مخزونها الجديد بالتنسيق التالي:
Sold 1 [potion name]
Remaining stock: [new stock count]استخدم دمج السلاسل النصية للجمع بين النص التوضيحي واسم الجرعة وكمية المخزون المحدّثة. بعد معالجة البيع، استخدم عبارة 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'مراجعة - العد التنازليتدرّب بنفسك: مترجم Lua عبر الإنترنت