Os Boolean em C# são representados pelo tipo bool, cujos valores podem ser true ou false.
O C# tem três operadores Boolean: ! (NOT), && (AND) e || (OR).
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 silvestres na floresta.
Annalyn vai tentar encontrar e libertar seu melhor amigo, podendo levar seu cachorro com ela nesta missão.
Depois de algum tempo seguindo o rastro de seu melhor amigo, ela encontra o acampamento no qual ele está preso. Descobre que há dois sequestradores: um cavaleiro poderoso e um arqueiro astuto.
Tendo encontrado os sequestradores, Annalyn considera quais das seguintes ações 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 o método (static) QuestLogic.CanFastAttack() que recebe um valor Boolean que indica 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:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implemente o método (static) QuestLogic.CanSpy() que recebe três valores Boolean, 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:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implemente o método (static) QuestLogic.CanSignalPrisoner() que recebe dois valores Boolean, indicando se o arqueiro e o prisioneiro, respectivamente, estão acordados. O método retorna true se o prisioneiro puder ser sinalizado, com base no estado dos dois personagens. Caso contrário, retorna false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implemente o método (static) QuestLogic.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. O método retorna true se o prisioneiro puder ser libertado com base no estado dos três personagens e na presença do cachorro de estimação de Annalyn. Caso contrário, retorna false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.