Булеве значення (англ. Boolean) може набувати одного з двох значень: true або false.
Логічні оператори, як-от ! (заперечення), && (логічне і) та || (логічне або), зазвичай використовують із булевими значеннями. Вони повертають булеве значення.
У цій вправі ми реалізуємо логіку квестів для нової рольової гри, яку розробляє наш друг. Головна героїня гри - Анналін, відважна дівчина, у якої є грізний і відданий пес. На жаль, трапляється біда: її найкращого друга викрали, коли він шукав у лісі ягоди. Анналін спробує знайти й визволити свого найкращого друга, а за бажанням візьме в цей квест і свого пса.
Пройшовши деякий час слідами свого найкращого друга, вона знаходить табір, де його увʼязнено. Виявляється, викрадачів двоє: могутній лицар і хитрий лучник.
Знайшовши викрадачів, Анналін обмірковує, які з наведених дій вона може виконати:
На нас чекають чотири завдання: реалізувати логіку, яка визначає, чи доступні перелічені дії залежно від стану трьох персонажів, знайдених у лісі, і від того, чи є поруч пес Анналін.
Реалізуйте функцію з назвою canExecuteFastAttack, яка приймає булеве значення (англ. Boolean) і вказує, чи лицар не спить.
Функція повертає 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, яка приймає чотири булеві значення.
Перші три параметри вказують, чи не сплять відповідно лицар, лучник і вʼязень.
Останній параметр вказує, чи є поруч пес Анналін.
Функція повертає true, якщо дія «Визволити вʼязня» доступна залежно від стану персонажів і наявності пса Анналін.
Інакше повертає false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Зареєструйтеся на Exercism, щоб вивчати й опановувати JavaScript, а також 37 концепцій159 вправ та справжнє наставництво від людей, і все це безкоштовно.