Un valor booleano representa uno de dos valores: true o false.
Los operadores lógicos (!, &&, ||) se suelen usar con valores booleanos y devuelven un valor booleano.
En este ejercicio vas a implementar la lógica de la misión de un nuevo juego de rol que está desarrollando un amigo. El personaje principal del juego es Annalyn, una chica valiente que tiene un perro feroz y leal. Por desgracia, todo se tuerce cuando secuestran a su mejor amiga mientras busca bayas en el bosque. Annalyn intentará encontrar y liberar a su mejor amiga y, si quiere, podrá llevar a su perro con ella en esta misión.
Después de seguir un tiempo el rastro de su mejor amiga, encuentra el campamento en el que esta está prisionera. Resulta que hay dos secuestradores: un caballero poderoso y un arquero astuto.
Una vez encontrados los secuestradores, Annalyn se plantea cuáles de las siguientes acciones puede llevar a cabo:
Tienes cuatro tareas: implementar la lógica que determina 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 booleano 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 booleanos que indican, respectivamente, si el caballero, el arquero y el prisionero 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 booleanos que indican, respectivamente, si el arquero y el prisionero están despiertos.
La función devuelve true si la acción «hacer señales 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 booleanos.
Los tres primeros parámetros indican, respectivamente, si el caballero, el arquero y el prisionero 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.