قواعد Pacman

قواعد Pacman

تمرين تعلّمي

مقدمة

القيم المنطقية

تمثل Gleam القيم صحيح وخطأ بنوع Bool. لا توجد سوى قيمتين: True وFalse. يمكن ربط هذه القيم بمتغير:

let true_variable = True
let false_variable = False

يمكن استخدام العوامل && و|| و! لمعالجة القيم المنطقية:

True && True  // -> True
True && False // -> False

False || True  // -> True
False || False // -> False

!False // -> True
!True  // -> False

يستخدم العاملان && و|| التقييم قصير الدائرة، مما يعني أن التعبير على الجانب الأيمن من العامل لا يُقيَّم إلا عند الحاجة.

لكل عامل أسبقية مختلفة، حيث يُقيَّم العامل ! قبل && و||. يمكن استخدام الأقواس المعقوفة لتقييم جزء واحد من التعبير قبل الأجزاء الأخرى:

!True && False   // -> False
!{True && False} // -> True

التعليمات

في هذا التمرين، عليك ترجمة بعض القواعد من اللعبة الكلاسيكية Pac-Man إلى دوال بلغة Gleam.

لديك أربع قواعد لترجمتها، وكلها متعلقة بحالات اللعبة.

لا تقلق بشأن كيفية اشتقاق الوسائط، ركّز فقط على دمج الوسائط لإرجاع النتيجة المطلوبة.

1. حدّد ما إذا كان Pac-Man يأكل شبحًا

عرّف الدالة eat_ghost التي تأخذ وسيطين (إذا كانت حبة الطاقة نشطة لدى Pac-Man و_إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا كان Pac-Man قادرًا على أكل الشبح. يجب أن تُرجع الدالة True فقط إذا كانت حبة الطاقة نشطة لدى Pac-Man وكان يلامس شبحًا.

eat_ghost(False, True)
// -> False

2. حدّد ما إذا كان Pac-Man يسجّل نقاطًا

عرّف الدالة score التي تأخذ وسيطين (إذا كان Pac-Man يلامس حبة طاقة و_إذا كان Pac-Man يلامس نقطة_) وتُرجع قيمة منطقية إذا سجّل Pac-Man نقاطًا. يجب أن تُرجع الدالة True إذا كان Pac-Man يلامس حبة طاقة أو نقطة.

score(True, True)
// -> True

3. حدّد ما إذا كان Pac-Man يخسر

عرّف الدالة lose التي تأخذ وسيطين (إذا كانت حبة الطاقة نشطة لدى Pac-Man و_إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا خسر Pac-Man. يجب أن تُرجع الدالة True إذا كان Pac-Man يلامس شبحًا ولم تكن لديه حبة طاقة نشطة.

lose(False, True)
// -> True

4. حدّد ما إذا كان Pac-Man يفوز

عرّف الدالة win التي تأخذ ثلاثة وسائط (إذا كان Pac-Man قد أكل كل النقاط، و_إذا كانت حبة الطاقة نشطة لدى Pac-Man_، و_إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا فاز Pac-Man. يجب أن تُرجع الدالة True إذا كان Pac-Man قد أكل كل النقاط ولم يخسر وفقًا للوسائط المعرّفة في الجزء 3.

win(False, True, False)
// -> False
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Gleam Exercism

مستعد لبدء قواعد Pacman؟

سجّل في Exercism لتتعلّم وتتقن Gleam عبر 33 مفهومًا122 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.