Os valores booleanos em C# são representados pelo tipo bool, cujos valores podem ser true ou false.
O C# suporta três operadores Boolean: ! (NOT), && (AND) e || (OR).
Neste exercício vais implementar a lógica da missão de um novo jogo de RPG que um amigo está a desenvolver.
A personagem principal do jogo é a Annalyn, uma rapariga corajosa que tem um cão de estimação feroz e leal. Infelizmente, o desastre acontece: a sua melhor amiga foi raptada enquanto procurava bagas na floresta.
A Annalyn vai tentar encontrar e libertar a sua melhor amiga, podendo levar o cão com ela nesta missão.
Depois de algum tempo a seguir o rasto da sua melhor amiga, encontra o acampamento onde ela está presa. Acontece que há dois raptores: um cavaleiro poderoso e um arqueiro astuto.
Depois de encontrar os raptores, a Annalyn pensa em quais das seguintes ações pode realizar:
Tens quatro tarefas: implementar a lógica para determinar se as ações acima estão disponíveis com base no estado das três personagens encontradas na floresta e na presença ou não do cão de estimação da Annalyn.
Implementa o método (static) QuestLogic.CanFastAttack() que recebe um valor Boolean que indica se o cavaleiro está acordado. Este método devolve true se for possível fazer um ataque rápido com base no estado do cavaleiro. Caso contrário, devolve false:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implementa o método (static) QuestLogic.CanSpy() que recebe três valores Boolean, que indicam se o cavaleiro, o arqueiro e o prisioneiro, respetivamente, estão acordados. O método devolve true se for possível espiar o grupo, com base no estado das três personagens. Caso contrário, devolve false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementa o método (static) QuestLogic.CanSignalPrisoner() que recebe dois valores Boolean, que indicam se o arqueiro e o prisioneiro, respetivamente, estão acordados. O método devolve true se for possível enviar um sinal ao prisioneiro, com base no estado das duas personagens. Caso contrário, devolve false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementa 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, respetivamente, estão acordados. O último parâmetro indica se o cão de estimação da Annalyn está presente. O método devolve true se for possível libertar o prisioneiro com base no estado das três personagens e na presença do cão de estimação da Annalyn. Caso contrário, devolve false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.