الدرس 2 من 10
المرور على الجدول
- 11 دقيقة
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
ipairs للقائمة و pairs للقاموس
الشرح
ipairs(t) تمرّ على الجدول كقائمة: الفهرس 1 ثم 2 ثم 3 بالترتيب، وتتوقّف عند أول nil. أمّا pairs(t) فتمرّ على كل المفاتيح، أرقامًا ونصوصًا، وهي طريقك إلى محتوى قاموس مثل { hp = 100, mana = 40 }.
والقاموس لا يُعدّ بـ #: فهو يقيس الجزء المتسلسل الذي يبدأ من الفهرس 1، وقاموس الإحصاءات لا فهرس 1 فيه، فيُرجع 0. لعدّ مفاتيحه مرّ عليها بـ pairs وزِد عدّادًا.
والفخّ: pairs لا تَعِد بأي ترتيب. قد تأتي mana قبل hp، وقد يتغيّر الترتيب بين تشغيل وآخر. فإن احتجت ترتيبًا ثابتًا، كما في شاشة إحصاءات اللاعب، فاحفظه في قائمة منفصلة ومرّ عليها بـ ipairs.
المطلوب
أصلح countKeys(t) لتعدّ مفاتيح أي جدول، واكتب hasItem(items, name) تُرجع true أو false، وorderedStats(stats, order) تُرجع قائمة نصوص مثل "hp: 100" للمفاتيح التي في order وحدها، وبترتيبها.
معايير التصحيح
6 معايير- countKeys تعدّ مفاتيح القاموس
- وتعدّ القائمة والجدول الفارغ
- hasItem تجد الموجود
- وتُرجع false للغائب
- orderedStats تتبع ترتيب order
- ولا تضيف ما ليس في order