Los booleanos en Java se representan con el tipo boolean, cuyos valores pueden ser true o false.
Java admite tres operadores booleanos:
! (NO): niega el valor booleano&& (Y): toma dos valores booleanos y devuelve true si ambos son true
|| (O): devuelve true si cualquiera 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 para un nuevo juego de rol que un amigo está desarrollando. La protagonista del juego es Annalyn, una chica valiente con un perro feroz y leal como mascota. Por desgracia, ocurre un desastre: su mejor amigo fue secuestrado mientras buscaba bayas en el bosque. Annalyn intentará encontrar y rescatar a su amigo, y puede que lleve a su perro con ella en la misión.
Después de seguir el rastro un tiempo, Annalyn descubre el campamento donde está prisionero su amigo. Resulta que hay dos secuestradores: un caballero poderoso y un arquero astuto.
Una vez encontrados los secuestradores, Annalyn considera cuál de las siguientes acciones puede llevar a cabo:
Tienes cuatro tareas: implementar la lógica que determina si las acciones anteriores están disponibles según el estado de los tres personajes del 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.
Este 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 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:
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 el prisionero, respectivamente, están despiertos.
El método devuelve true si se le puede enviar una señal al prisionero 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 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:
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.