تُمثَّل القيم المنطقية في C# بالنوع bool، ويمكن أن تكون قيمه إما true أو false.
تدعم C# ثلاثة عوامل منطقية: ! (النفي)، و&& (و)، و|| (أو).
في هذا التمرين، ستُنفّذ منطق المهمة في لعبة تقمص أدوار جديدة يعمل صديقك على تطويرها.
الشخصية الرئيسية في اللعبة هي Annalyn، فتاة شجاعة تملك كلبًا أليفًا شرسًا ووفيًا. لكن الكارثة تحلّ، إذ اختُطفت صديقتها المفضلة بينما كانت تبحث عن التوت في الغابة.
ستحاول Annalyn العثور على صديقتها المفضلة وتحريرها، ويمكنها أن تصطحب كلبها معها في هذه المهمة.
بعد وقت من تتبع أثر صديقتها المفضلة، تجد المخيم الذي تحتجز فيه صديقتها. يتبين أن هناك خاطفين اثنين: فارس قوي ورامٍ ماكر.
بعد أن وجدت الخاطفين، تفكر Annalyn في أي الإجراءات التالية يمكنها القيام بها:
لديك أربع مهام: تنفيذ المنطق الذي يحدد ما إذا كانت الإجراءات المذكورة أعلاه متاحة بناءً على حالة الشخصيات الثلاث الموجودة في الغابة وما إذا كان كلب Annalyn الأليف حاضرًا أم لا.
نفّذ الطريقة (static) QuestLogic.CanFastAttack() التي تأخذ قيمة منطقية تشير إلى ما إذا كان الفارس مستيقظًا. تُرجع هذه الطريقة true إذا كان يمكن شن هجوم سريع بناءً على حالة الفارس. وإلا فتُرجع false:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
نفّذ الطريقة (static) QuestLogic.CanSpy() التي تأخذ ثلاث قيم منطقية تشير إلى ما إذا كان الفارس والرامي والسجين، على الترتيب، مستيقظين. تُرجع الطريقة true إذا كان يمكن التجسس على المجموعة بناءً على حالة الشخصيات الثلاث. وإلا فتُرجع false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
نفّذ الطريقة (static) QuestLogic.CanSignalPrisoner() التي تأخذ قيمتين منطقيتين تشير إلى ما إذا كان الرامي والسجين، على الترتيب، مستيقظين. تُرجع الطريقة true إذا كان يمكن إرسال إشارة إلى السجين بناءً على حالة الشخصيتين. وإلا فتُرجع false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
نفّذ الطريقة (static) QuestLogic.CanFreePrisoner() التي تأخذ أربع قيم منطقية. تشير المعاملات الثلاثة الأولى إلى ما إذا كان الفارس والرامي والسجين، على الترتيب، مستيقظين. ويشير المعامل الأخير إلى ما إذا كان كلب Annalyn الأليف حاضرًا. تُرجع الطريقة true إذا كان يمكن تحرير السجين بناءً على حالة الشخصيات الثلاث ووجود كلب Annalyn الأليف. وإلا فتُرجع false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.