I booleani in Cairo sono rappresentati dal tipo booleano predefinito bool, i cui valori possono essere true o false.
let speeding = true; // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false'
Cairo supporta tre operatori logici che possono ridurre le espressioni a valori booleani, restituendo true o false.
| Operatore | Cosa significa |
|---|---|
&& (and) |
È vero se entrambe le affermazioni sono vere. |
|| (or) |
È vero se almeno una delle affermazioni è vera. |
! (not) |
È vero solo se l'affermazione è falsa. |
In questo esercizio implementerai la logica delle missioni per un nuovo gioco di ruolo che sta sviluppando un amico. La protagonista del gioco è Annalyn, una ragazza coraggiosa con un cane fedele e feroce. Purtroppo arriva il disastro: la sua migliore amica è stata rapita mentre cercava delle bacche nel bosco. Annalyn cercherà di trovare e liberare la sua migliore amica e, se vuole, potrà portare con sé il suo cane in questa impresa.
Dopo aver seguito per un po' le tracce della sua migliore amica, trova il campo in cui è tenuta prigioniera. Si scopre che i rapitori sono due: un cavaliere possente e un arciere astuto.
Ora che ha trovato i rapitori, Annalyn valuta quale delle seguenti azioni può intraprendere:
Hai quattro compiti: implementare la logica che determina se le azioni precedenti sono disponibili in base allo stato dei tre personaggi trovati nel bosco e alla presenza o meno del cane di Annalyn.
Definisci la funzione can_fast_attack() che accetta un valore booleano che indica se il cavaliere è sveglio.
Questa funzione restituisce true se è possibile sferrare un attacco rapido in base allo stato del cavaliere.
Altrimenti restituisce false:
let knight_awake = true;
can_fast_attack(knight_awake); // false
Definisci la funzione can_spy() che accetta tre valori booleani, che indicano rispettivamente se il cavaliere, l'arciere e il prigioniero sono svegli.
La funzione restituisce true se si può spiare il gruppo, in base allo stato dei tre personaggi.
Altrimenti restituisce false:
let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true
Definisci la funzione can_signal_prisoner() che accetta due valori booleani, che indicano rispettivamente se l'arciere e il prigioniero sono svegli.
La funzione restituisce true se si può segnalare al prigioniero, in base allo stato dei due personaggi.
Altrimenti restituisce false:
let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true
Definisci la funzione can_free_prisoner() che accetta quattro valori booleani.
I primi tre parametri indicano rispettivamente se il cavaliere, l'arciere e il prigioniero sono svegli.
L'ultimo parametro indica se il cane di Annalyn è presente.
La funzione restituisce true se si può liberare il prigioniero, in base allo stato dei tre personaggi e alla presenza del cane di Annalyn.
Altrimenti restituisce 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
Iscriviti a Exercism per imparare e padroneggiare Cairo con 25 concetti68 esercizi e il mentoring di persone reali, tutto gratis.