الدرس 2 من 10

الأرقام والنصوص

هدف الدرس

العوامل // و% و^ ودوال النصوص

01

الشرح

في Lua 5.4 نوعان من الأرقام: الصحيح integer والعشري float، والدالة math.type(x) تخبرك بنوع الرقم. والقسمة / تُرجع رقمًا عشريًّا دائمًا، فـ 10 / 2 تعطي 5.0. أما // فتقسم وتقرّب الناتج إلى الأدنى، و% تعطي باقي القسمة، فـ 250 // 4 تعطي 62 و250 % 4 تعطي 2، وبهذه الطريقة يُقسم ذهب الغنيمة على أفراد الفريق.

والأُسّ ^ يُرجع رقمًا عشريًّا دائمًا حتى لو كان الرقمان صحيحين، فـ 2 ^ 3 تعطي 8.0، ولهذا تظهر معادلة الخبرة 100 * level ^ 2 في الواجهة 900.0، وmath.floor تعيدها رقمًا صحيحًا. وإذا أردت عرض رقم عشري بمنزلتين فاستعمل string.format("%.2f", x).

وتستدعي دوال النصّ بالنقطتين الرأسيّتين (:)، مثل nick:upper()، وnick:sub(1, 3) التي تأخذ من الحرف الأول إلى الثالث، و("#"):rep(5) التي تكرّر النصّ، أما #nick فتعطيك طوله. لكن # وsub تعدّان البايتات لا الأحرف، والحرف العربي بايتان، فـ #"ليان" تعطي 8. ولعدّ الأحرف العربية استعمل utf8.len، واعلم أن upper لا تغيّر فيها شيئًا.

02

المطلوب

اقسم gold على party، واجعل share نصيب كل لاعب رقمًا صحيحًا، وleftover ما يبقى بعد القسمة. ثم اجعل xpNext قيمة 100 * level ^ 2 رقمًا صحيحًا، وaccuracy النسبة المئوية لـ hits من shots نصًّا بمنزلتين عشريّتين. واجعل tag أول ثلاثة أحرف من nick بحروف كبيرة بين قوسين مربّعين، وbar علامة # واحدة لكل 10 من hp.

الفحوص

6 فحوص
  1. المتغيّر share رقم صحيح يساوي 62 لا 62.5
  2. المتغيّر leftover يساوي الباقي 2
  3. المتغيّر xpNext يساوي 900 صحيحًا لا 900.0
  4. المتغيّر accuracy نصّ بمنزلتين يساوي 71.15
  5. قيمة tag هي [SHA]
  6. المتغيّر bar فيه سبع علامات #
main.lua
المخرجاتLua 5.4 (wasmoon)

نحمّل بيئة Lua الآن.

–/6

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

تجد 6 فحوص في بطاقة «المطلوب».