الدرس 2 من 10

المرور على الجدول

هدف الدرس

ipairs للقائمة و pairs للقاموس

01

الشرح

ipairs(t) تمرّ على الجدول كقائمة: الفهرس 1 ثم 2 ثم 3 بالترتيب، وتتوقّف عند أول nil. أمّا pairs(t) فتمرّ على كل المفاتيح، أرقامًا ونصوصًا، وهي طريقك إلى محتوى قاموس مثل { hp = 100, mana = 40 }.

والقاموس لا يُعدّ بـ #: فهو يقيس الجزء المتسلسل الذي يبدأ من الفهرس 1، وقاموس الإحصاءات لا فهرس 1 فيه، فيُرجع 0. لعدّ مفاتيحه مرّ عليها بـ pairs وزِد عدّادًا.

والفخّ: pairs لا تَعِد بأي ترتيب. قد تأتي mana قبل hp، وقد يتغيّر الترتيب بين تشغيل وآخر. فإن احتجت ترتيبًا ثابتًا، كما في شاشة إحصاءات اللاعب، فاحفظه في قائمة منفصلة ومرّ عليها بـ ipairs.

02

المطلوب

أصلح countKeys(t) لتعدّ مفاتيح أي جدول، واكتب hasItem(items, name) تُرجع true أو false، وorderedStats(stats, order) تُرجع قائمة نصوص مثل "hp: 100" للمفاتيح التي في order وحدها، وبترتيبها.

معايير التصحيح

6 معايير
  1. countKeys تعدّ مفاتيح القاموس
  2. وتعدّ القائمة والجدول الفارغ
  3. hasItem تجد الموجود
  4. وتُرجع false للغائب
  5. orderedStats تتبع ترتيب order
  6. ولا تضيف ما ليس في order
main.lua
المخرجاتLua 5.4 · wasmoon

جارٍ تحميل Lua…

–/6

يبدأ الفحص حين تجهز البيئة.

6 معايير في بطاقة «المطلوب».