يمثّل Elixir القيمتين صحيح وخطأ بنوع منطقي. ولا توجد سوى قيمتين: true وfalse. ويمكن إسناد هاتين القيمتين إلى متغير:
true_variable = true
false_variable = false
يمكننا تقييم تعبيرات منطقية صارمة باستخدام العوامل and/2 وor/2 وnot/1.
true_variable = true and true
false_variable = true and false
true_variable = false or true
false_variable = false or false
true_variable = not false
false_variable = not true
عند كتابة دالة تُرجع قيمة منطقية، من الاصطلاح المتبع أن ينتهي اسم الدالة بالرمز ?. ويمكن اتباع الاصطلاح نفسه مع المتغيرات التي تخزّن قيمًا منطقية.
def either_true?(a?, b?) do
a? or b?
end
في هذا التمرين، ستحتاج إلى ترجمة بعض القواعد من اللعبة الكلاسيكية Pac-Man إلى دوال بلغة Elixir.
لديك أربع قواعد لترجمتها، وجميعها مرتبطة بحالات اللعبة.
لا تقلق بشأن كيفية اشتقاق الوسائط، ركّز فقط على دمج الوسائط لإرجاع النتيجة المقصودة.
عرّف الدالة Rules.eat_ghost?/2 التي تأخذ وسيطين (ما إذا كان لدى Pac-Man حبة طاقة نشطة و_ما إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا كان Pac-Man قادرًا على أكل الشبح. يجب أن تُرجع الدالة صحيحًا فقط إذا كان لدى Pac-Man حبة طاقة نشطة وكان يلامس شبحًا.
Rules.eat_ghost?(false, true)
# => false
عرّف الدالة Rules.score?/2 التي تأخذ وسيطين (ما إذا كان Pac-Man يلامس حبة طاقة و_ما إذا كان Pac-Man يلامس نقطة_) وتُرجع قيمة منطقية إذا سجّل Pac-Man نقاطًا. يجب أن تُرجع الدالة صحيحًا إذا كان Pac-Man يلامس حبة طاقة أو نقطة.
Rules.score?(true, true)
# => true
عرّف الدالة Rules.lose?/2 التي تأخذ وسيطين (ما إذا كان لدى Pac-Man حبة طاقة نشطة و_ما إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا خسر Pac-Man. يجب أن تُرجع الدالة صحيحًا إذا كان Pac-Man يلامس شبحًا وليس لديه حبة طاقة نشطة.
Rules.lose?(false, true)
# => true
عرّف الدالة Rules.win?/3 التي تأخذ ثلاثة وسائط (ما إذا كان Pac-Man قد أكل كل النقاط، و_ما إذا كان لدى Pac-Man حبة طاقة نشطة_، و_ما إذا كان Pac-Man يلامس شبحًا_) وتُرجع قيمة منطقية إذا فاز Pac-Man. يجب أن تُرجع الدالة صحيحًا إذا كان Pac-Man قد أكل كل النقاط ولم يخسر بناءً على الوسائط المعرّفة في الجزء 3.
Rules.win?(false, true, false)
# => false
سجّل في Exercism لتتعلّم وتتقن Elixir عبر 58 مفهومًا168 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.