Les booléens en C# sont représentés par le type bool, dont les valeurs peuvent être soit true, soit false.
C# prend en charge trois opérateurs booléens : ! (NON), && (ET) et || (OU).
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 féroce et fidèle. Malheureusement, le malheur frappe : sa meilleure amie a été enlevée alors qu'elle cherchait des baies dans la forêt.
Annalyn va tenter de retrouver et de libérer sa meilleure amie, en emmenant éventuellement son chien avec elle dans cette quête.
Après avoir suivi un moment la piste de sa meilleure amie, elle découvre le camp où celle-ci est retenue prisonnière. Il s'avère qu'il y a deux ravisseurs : un puissant chevalier et un archer rusé.
Ayant trouvé les ravisseurs, Annalyn réfléchit aux actions suivantes dans lesquelles elle peut s'engager :
Tu as quatre tâches : implémenter la logique qui détermine si les actions ci-dessus sont possibles 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 la méthode (static) QuestLogic.CanFastAttack() qui prend une valeur booléenne indiquant si le chevalier est éveillé. Cette méthode renvoie true si une attaque rapide est possible en fonction de l'état du chevalier. Sinon, elle renvoie false :
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implémente la méthode (static) QuestLogic.CanSpy() qui prend trois valeurs booléennes, indiquant si le chevalier, l'archer et le prisonnier, respectivement, sont éveillés. La méthode renvoie true si le groupe peut être espionné, en fonction de l'état des trois personnages. Sinon, elle renvoie false :
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implémente la méthode (static) QuestLogic.CanSignalPrisoner() qui prend deux valeurs booléennes, indiquant si l'archer et le prisonnier, respectivement, sont éveillés. La méthode renvoie true si le prisonnier peut être signalé, en fonction de l'état des deux personnages. Sinon, elle renvoie false :
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implémente la méthode (static) QuestLogic.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 méthode renvoie true si le prisonnier peut être libéré en fonction de l'état des trois personnages et de la présence du chien d'Annalyn. Sinon, elle renvoie false :
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.