Un Boolean representa uno de dos valores: true o false.
Los operadores lógicos (!, &&, ||) normalmente se usan con valores Boolean y devuelven un valor Boolean.
En este ejercicio, implementarás la lógica de la misión para un nuevo juego de rol que está desarrollando un amigo. La protagonista del juego es Annalyn, una chica valiente con un perro feroz y leal como mascota. Lamentablemente, todo se complica: su mejor amigo fue secuestrado mientras buscaba bayas en el bosque. Annalyn intentará encontrar y liberar a su mejor amigo, llevando opcionalmente a su perro con ella en esta misión.
Después de pasar un tiempo siguiendo el rastro de su mejor amigo, encuentra el campamento en el que está prisionero. Resulta que hay dos secuestradores: un caballero poderoso y un arquero astuto.
Tras encontrar a los secuestradores, Annalyn considera cuál de las siguientes acciones puede realizar:
Tienes cuatro tareas: implementar la lógica para determinar si las acciones anteriores están disponibles según el estado de los tres personajes que se encuentran en el bosque y según si el perro de Annalyn está presente o no.
Implementa una función llamada canExecuteFastAttack que recibe un valor Boolean que indica si el caballero está despierto.
Esta función devuelve true si la acción «Ataque rápido» está disponible según el estado del personaje.
De lo contrario, devuelve false:
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
Implementa una función llamada canSpy que recibe tres valores Boolean, que indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos.
La función devuelve true si la acción «Espiar» está disponible según el estado de los personajes.
De lo contrario, devuelve false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementa una función llamada canSignalPrisoner que recibe dos valores Boolean, que indican si el arquero y el prisionero, respectivamente, están despiertos.
La función devuelve true si la acción «Señalizar al prisionero» está disponible según el estado de los personajes.
De lo contrario, devuelve false:
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementa una función llamada canFreePrisoner que recibe cuatro valores Boolean.
Los primeros tres parámetros indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos.
El último parámetro indica si el perro de Annalyn está presente.
La función devuelve true si la acción «Liberar al prisionero» está disponible según el estado de los personajes y la presencia del perro de Annalyn.
De lo contrario, devuelve false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.