Booleanos em Java são representados pelo tipo boolean, cujos valores podem ser true ou false.
Java suporta três operadores booleanos:
! (NOT): inverte o valor booleano&& (AND): recebe dois booleanos e retorna true se ambos forem true
|| (OR): retorna true se qualquer um dos dois booleanos for true
!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true
Neste exercício, você vai implementar a lógica da missão de um novo jogo de RPG que um amigo está desenvolvendo. A personagem principal do jogo é Annalyn, uma garota corajosa com um cão de estimação feroz e leal. Infelizmente, o desastre acontece: seu melhor amigo foi sequestrado enquanto procurava bagas na floresta. Annalyn vai tentar encontrar e resgatar seu amigo, podendo levar seu cão junto na missão.
Depois de algum tempo seguindo a trilha, Annalyn descobre o acampamento onde seu amigo está preso. Acontece que há dois sequestradores: um cavaleiro poderoso e um arqueiro astuto.
Depois de encontrar os sequestradores, Annalyn pensa em quais das ações a seguir ela pode realizar:
Você tem quatro tarefas: implementar a lógica para determinar se as ações acima estão disponíveis com base no estado dos três personagens na floresta e na presença ou não do cão de estimação de Annalyn.
Implemente o método (static) AnnalynsInfiltration.canFastAttack(), que recebe um valor booleano indicando se o cavaleiro está acordado.
Esse método retorna true se um ataque rápido puder ser feito com base no estado do cavaleiro.
Caso contrário, retorna false:
boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false
Implemente o método (static) AnnalynsInfiltration.canSpy(), que recebe três valores booleanos indicando se o cavaleiro, o arqueiro e o prisioneiro, respectivamente, estão acordados.
O método retorna true se o grupo puder ser espionado com base no estado dos três personagens.
Caso contrário, retorna false:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implemente o método (static) AnnalynsInfiltration.canSignalPrisoner(), que recebe dois valores booleanos indicando se o arqueiro e o prisioneiro, respectivamente, estão acordados.
O método retorna true se for possível sinalizar ao prisioneiro com base no estado dos dois personagens.
Caso contrário, retorna false:
boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implemente o método (static) AnnalynsInfiltration.canFreePrisoner(), que recebe quatro valores booleanos.
Os três primeiros parâmetros indicam se o cavaleiro, o arqueiro e o prisioneiro, respectivamente, estão acordados.
O último parâmetro indica se o cão de estimação de Annalyn está presente.
O método retorna true se o prisioneiro puder ser libertado com base no estado dos três personagens e na presença do cão de estimação de Annalyn.
Caso contrário, retorna false:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Crie sua conta no Exercism para aprender e dominar Java com 26 conceitos158 exercícios e mentoria humana de verdade, tudo de graça.