En Java, los valores booleanos se representan con el tipo boolean, que puede tomar uno de estos dos valores: true o false.
Java admite tres operadores Boolean:
! (NOT): niega el valor booleano&& (AND): toma dos valores booleanos y devuelve true si ambos son true
|| (OR): devuelve true si alguno de los dos valores booleanos es true
!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true
En este ejercicio, implementarás la lógica de la misión de 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, ocurre una catástrofe: su mejor amiga ha sido secuestrada mientras buscaba bayas en el bosque. Annalyn intentará encontrar y rescatar a su amiga, llevándose opcionalmente a su perro en la misión.
Tras pasar un tiempo siguiendo el rastro, Annalyn descubre el campamento donde está encerrada su amiga. Resulta que hay dos secuestradores: un poderoso caballero y un astuto arquero.
Una vez encontrados los secuestradores, Annalyn se plantea cuál 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 en el bosque y según si el perro de Annalyn está presente o no.
Implementa el método (static) AnnalynsInfiltration.canFastAttack(), que recibe un valor booleano que indica si el caballero está despierto.
El método devuelve true si se puede hacer un ataque rápido según el estado del caballero.
De lo contrario, devuelve false:
boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false
Implementa el método (static) AnnalynsInfiltration.canSpy(), que recibe tres valores booleanos que indican si el caballero, el arquero y la prisionera, 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:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementa el método (static) AnnalynsInfiltration.canSignalPrisoner(), que recibe dos valores booleanos que indican si el arquero y la prisionera, respectivamente, están despiertos.
El método devuelve true si se puede hacer señales a la prisionera según el estado de los dos personajes.
De lo contrario, devuelve false:
boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementa el método (static) AnnalynsInfiltration.canFreePrisoner(), que recibe cuatro valores booleanos.
Los tres primeros parámetros indican si el caballero, el arquero y la prisionera, 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 a la prisionera según el estado de los tres personajes y la presencia del perro de Annalyn.
De lo contrario, devuelve false:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Regístrate en Exercism para aprender y dominar Java con 26 conceptos158 ejercicios y mentoría humana real, todo gratis.