Un booléen représente l'une de deux valeurs : true ou false.
Les opérateurs logiques (!, &&, ||) s'utilisent généralement avec des valeurs booléennes et renvoient une valeur booléenne.
Dans cet exercice, tu vas implémenter la logique de quête d'un nouveau jeu de rôle développé par un ami. Le personnage principal du jeu est Annalyn, une jeune fille courageuse accompagnée d'un chien de compagnie féroce et fidèle. Malheureusement, le malheur s'abat sur elle : son meilleur ami a été enlevé alors qu'il cherchait des baies dans la forêt. Annalyn va tenter de retrouver et de libérer son meilleur ami, en emmenant éventuellement son chien avec elle dans cette quête.
Après avoir suivi la piste de son meilleur ami pendant un certain temps, elle trouve le camp où celui-ci est emprisonné. Il s'avère qu'il y a deux ravisseurs : un chevalier puissant et un archer rusé.
Après avoir trouvé les ravisseurs, Annalyn réfléchit aux actions suivantes qu'elle peut entreprendre :
Tu as quatre tâches : implémenter la logique qui détermine si les actions ci-dessus sont disponibles, en fonction de l'état des trois personnages trouvés dans la forêt et de la présence ou non du chien d'Annalyn.
Implémente une fonction nommée canExecuteFastAttack qui prend une valeur booléenne indiquant si le chevalier est éveillé.
Cette fonction renvoie true si l'action « Attaque rapide » est disponible en fonction de l'état du personnage.
Sinon, elle renvoie false :
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
Implémente une fonction nommée canSpy qui prend trois valeurs booléennes, indiquant si le chevalier, l'archer et le prisonnier, respectivement, sont éveillés.
La fonction renvoie true si l'action « Espionnage » est disponible en fonction de l'état des personnages.
Sinon, elle renvoie false :
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implémente une fonction nommée canSignalPrisoner qui prend deux valeurs booléennes, indiquant si l'archer et le prisonnier, respectivement, sont éveillés.
La fonction renvoie true si l'action « Signaler le prisonnier » est disponible en fonction de l'état des personnages.
Sinon, elle renvoie false :
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implémente une fonction nommée canFreePrisoner qui prend quatre valeurs booléennes.
Les trois premiers paramètres indiquent si le chevalier, l'archer et le prisonnier, respectivement, sont éveillés.
Le dernier paramètre indique si le chien d'Annalyn est présent.
La fonction renvoie true si l'action « Libérer le prisonnier » est disponible en fonction de l'état des personnages et de la présence du chien d'Annalyn.
Sinon, elle renvoie false :
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.