En C#, los valores booleanos se representan con el tipo bool, cuyos valores pueden ser true o false.
C# admite tres operadores Boolean: ! (NOT), && (AND) y || (OR).
En este ejercicio, vas a implementar 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 feroz y leal. Por desgracia, la tragedia llama a su puerta: su mejor amiga fue secuestrada mientras buscaba bayas en el bosque.
Annalyn intentará encontrar y liberar a su mejor amiga, y puede que se lleve a su perro en esta misión.
Tras pasar un tiempo siguiendo el rastro de su mejor amiga, encuentra el campamento en el que está prisionera. Resulta que hay dos secuestradores: un caballero poderoso y un arquero astuto.
Una vez encontrados los secuestradores, Annalyn se plantea 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 hay en el bosque y según si está presente o no el perro de Annalyn.
Implementa el método QuestLogic.CanFastAttack() (static) que recibe 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 QuestLogic.CanSpy() (static) que recibe 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 QuestLogic.CanSignalPrisoner() (static) que recibe dos valores Boolean que indican si el arquero y el prisionero, respectivamente, están despiertos. El método devuelve true si se puede señalizar 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 QuestLogic.CanFreePrisoner() (static) que recibe cuatro valores Boolean. Los tres primeros parámetros indican si el caballero, el arquero y el prisionero, respectivamente, están despiertos. El último parámetro indica si está presente el perro de Annalyn. 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.