«مقدار منطقی» یکی از دو مقدار 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 حاضر است یا نه.
این تابع اگر اقدام «آزاد کردن زندانی» بر اساس وضعیت شخصیتها و حضور سگ خانگی Annalyn در دسترس باشد، true را برمیگرداند.
در غیر این صورت، false را برمیگرداند:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
در Exercism ثبتنام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.