Um Boolean representa um de dois valores: true ou false.
Operadores lógicos (!, &&, ||) costumam ser usados com valores Boolean e retornam um valor Boolean.
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 cachorro de estimação feroz e leal. Infelizmente, o desastre acontece: seu melhor amigo foi sequestrado enquanto procurava frutas na floresta. Annalyn vai tentar encontrar e libertar seu melhor amigo, podendo levar o cachorro com ela nessa missão.
Depois de passar um tempo seguindo o rastro de seu melhor amigo, ela encontra o acampamento onde ele está preso. Acontece que há dois sequestradores: um cavaleiro poderoso e um arqueiro astuto.
Depois de encontrar os sequestradores, Annalyn considera quais das seguintes ações 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 encontrados na floresta e se o cachorro de estimação de Annalyn está presente ou não.
Implemente uma função chamada canExecuteFastAttack que recebe um valor Boolean que indica se o cavaleiro está acordado.
Essa função retorna true se a ação 'Ataque Rápido' estiver disponível com base no estado do personagem.
Caso contrário, retorna false:
const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false
Implemente uma função chamada canSpy que recebe três valores Boolean, indicando se o cavaleiro, o arqueiro e o prisioneiro, respectivamente, estão acordados.
A função retorna true se a ação 'Espionar' estiver disponível com base no estado dos personagens.
Caso contrário, retorna false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implemente uma função chamada canSignalPrisoner que recebe dois valores Boolean, indicando se o arqueiro e o prisioneiro, respectivamente, estão acordados.
A função retorna true se a ação 'Sinalizar para o prisioneiro' estiver disponível com base no estado dos personagens.
Caso contrário, retorna false:
const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implemente uma função chamada canFreePrisoner que recebe quatro valores Boolean.
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 cachorro de estimação de Annalyn está presente.
A função retorna true se a ação 'Libertar o prisioneiro' estiver disponível com base no estado dos personagens e na presença do cachorro de estimação de Annalyn.
Caso contrário, ela retorna false:
const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.