Los valores Boolean en C# se representan con el tipo bool, que puede tomar los valores true o false.
C# admite tres operadores Boolean: ! (NOT), && (AND) y || (OR).
En este ejercicio, implementarás la lógica de la misión para un nuevo juego de rol que un amigo está desarrollando.
La protagonista del juego es Annalyn, una chica valiente con un perro mascota feroz y leal. Desafortunadamente, ocurre un desastre: su mejor amigo fue secuestrado mientras buscaba bayas en el bosque.
Annalyn intentará encontrar y liberar a su mejor amigo, pudiendo 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 poderoso caballero y un astuto arquero.
Habiendo encontrado a los secuestradores, Annalyn considera cuáles de las siguientes acciones puede llevar a cabo:
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.
Implementa el método (static) QuestLogic.CanFastAttack() que toma un valor Boolean que indica si el caballero está despierto. Este método devuelve true si se puede hacer un ataque rápido según el estado del caballero. De lo contrario, devuelve false:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implementa el método (static) QuestLogic.CanSpy() que toma tres valores Boolean, que indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos. El método devuelve true si se puede espiar al grupo, según el estado de los tres personajes. De lo contrario, devuelve false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementa el método (static) QuestLogic.CanSignalPrisoner() que toma dos valores Boolean, que indican si el arquero y el prisionero, respectivamente, están despiertos. El método devuelve true si se puede hacer señales al prisionero, según el estado de los dos personajes. De lo contrario, devuelve false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementa el método (static) QuestLogic.CanFreePrisoner() que toma 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. El método 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:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.