القيمة المنطقية تمثّل واحدة من قيمتين: true أو false.
تُستخدم العوامل المنطقية (!، &&، ||) عادةً مع القيم المنطقية، وهي تُرجع قيمة منطقية.
في هذا التمرين، ستُنفّذ منطق المهمة للعبة تقمّص أدوار جديدة يطوّرها أحد أصدقائك. الشخصية الرئيسية في اللعبة هي Annalyn، فتاة شجاعة تمتلك كلبًا أليفًا شرسًا وفيًّا. للأسف، تقع الكارثة، إذ اختُطف أعزّ أصدقائها أثناء بحثه عن التوت في الغابة. ستحاول Annalyn أن تجد صديقها الأعزّ وتحرّره، ويمكنها أن تأخذ كلبها معها في هذه المهمة.
بعد أن تتبّعت أثر صديقها الأعزّ لبعض الوقت، تجد المخيّم الذي يُحتجَز فيه. يتّضح أن هناك خاطفَين: فارس قويّ ورامٍ ماكر.
بعد أن وجدت الخاطفَين، تفكّر Annalyn في أيّ من الأفعال التالية يمكنها أن تقوم بها:
لديك أربع مهام: تنفيذ المنطق الذي يحدّد ما إذا كانت الأفعال المذكورة أعلاه متاحة بناءً على حالة الشخصيات الثلاث الموجودة في الغابة وما إذا كان كلب Annalyn الأليف حاضرًا أم لا.
نفّذ دالة باسم canExecuteFastAttack تأخذ قيمة منطقية تشير إلى ما إذا كان الفارس مستيقظًا.
تُرجع هذه الدالة true إذا كان فعل "الهجوم السريع" متاحًا بناءً على حالة الشخصية.
وإلا، فتُرجع false:
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
نفّذ دالة باسم canSpy تأخذ ثلاث قيم منطقية تشير على التوالي إلى ما إذا كان الفارس والرامي والسجين مستيقظين.
تُرجع الدالة true إذا كان فعل "التجسّس" متاحًا بناءً على حالة الشخصيات.
وإلا، فتُرجع false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
نفّذ دالة باسم canSignalPrisoner تأخذ قيمتين منطقيتين تشير على التوالي إلى ما إذا كان الرامي والسجين مستيقظين.
تُرجع الدالة true إذا كان فعل "إشارة إلى السجين" متاحًا بناءً على حالة الشخصيات.
وإلا، فتُرجع false:
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
نفّذ دالة باسم canFreePrisoner تأخذ أربع قيم منطقية.
تشير المعاملات الثلاثة الأولى على التوالي إلى ما إذا كان الفارس والرامي والسجين مستيقظين.
ويشير المعامل الأخير إلى ما إذا كان كلب Annalyn الأليف حاضرًا.
تُرجع الدالة true إذا كان فعل "تحرير السجين" متاحًا بناءً على حالة الشخصيات ووجود كلب Annalyn الأليف.
وإلا، فتُرجع false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
سجّل في Exercism لتتعلّم وتتقن JavaScript عبر 37 مفهومًا159 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.