En Cairo, los Boolean se representan con el tipo Boolean predeclarado bool, que puede tomar los valores true o false.
let speeding = true; // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false'
Cairo admite tres operadores lógicos que pueden evaluar expresiones hasta reducirlas a valores Boolean, y devuelven true o false.
| Operador | Qué significa |
|---|---|
&& (y) |
Es verdadero si ambas afirmaciones son verdaderas. |
|| (o) |
Es verdadero si al menos una afirmación es verdadera. |
! (no) |
Es verdadero solo si la afirmación es falsa. |
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 mascota feroz y leal. Por desgracia, ocurre una catástrofe, ya que su mejor amigo fue secuestrado mientras buscaba bayas en el bosque. Annalyn intentará encontrar y liberar a su mejor amigo, y podrá llevar 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.
Una vez que encuentra a los secuestradores, Annalyn considera cuáles 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 si el perro de Annalyn está presente o no.
Define la función can_fast_attack() que recibe un valor Boolean que indica si el caballero está despierto.
Esta función devuelve true si se puede hacer un ataque rápido según el estado del caballero.
De lo contrario, devuelve false:
let knight_awake = true;
can_fast_attack(knight_awake); // false
Define la función can_spy() 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 se puede espiar al grupo, según el estado de los tres personajes.
De lo contrario, devuelve false:
let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true
Define la función can_signal_prisoner() que recibe dos valores Boolean, que indican si el arquero y el prisionero, respectivamente, están despiertos.
La función devuelve true si se le pueden hacer señales al prisionero, según el estado de los dos personajes.
De lo contrario, devuelve false:
let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true
Define la función can_free_prisoner() 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 se puede liberar al prisionero según el estado de los tres personajes y la presencia del perro de Annalyn.
De lo contrario, devuelve false:
let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
let dog_present = false;
can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present); // false
Regístrate en Exercism para aprender y dominar Cairo con 25 conceptos68 ejercicios y mentoría humana real, todo gratis.