I booleani in C# sono rappresentati dal tipo bool, i cui valori possono essere true o false.
C# supporta tre operatori booleani: ! (NOT), && (AND) e || (OR).
In questo esercizio implementerai la logica delle missioni per un nuovo gioco di ruolo che un amico sta sviluppando.
La protagonista del gioco è Annalyn, una ragazza coraggiosa con un cane fedele e feroce. Purtroppo arriva la catastrofe: il suo migliore amico è stato rapito mentre cercava bacche nel bosco.
Annalyn cercherà di trovare e liberare il suo migliore amico, portando con sé il cane, se vuole, in questa missione.
Dopo aver seguito per un po' le tracce del suo migliore amico, trova l'accampamento in cui è tenuto prigioniero. Si scopre che i rapitori sono due: un cavaliere possente e un arciere astuto.
Una volta trovati i rapitori, Annalyn valuta quali delle seguenti azioni può intraprendere:
Hai quattro compiti: implementare la logica che determina se le azioni sopra descritte sono disponibili, in base allo stato dei tre personaggi trovati nella foresta e alla presenza o meno del cane di Annalyn.
Implementa il metodo (static) QuestLogic.CanFastAttack(), che riceve un valore booleano che indica se il cavaliere è sveglio. Il metodo restituisce true se è possibile sferrare un attacco rapido in base allo stato del cavaliere. Altrimenti restituisce false:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implementa il metodo (static) QuestLogic.CanSpy(), che riceve tre valori booleani che indicano, rispettivamente, se il cavaliere, l'arciere e il prigioniero sono svegli. Il metodo restituisce true se è possibile spiare il gruppo, in base allo stato dei tre personaggi. Altrimenti restituisce false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementa il metodo (static) QuestLogic.CanSignalPrisoner(), che riceve due valori booleani che indicano, rispettivamente, se l'arciere e il prigioniero sono svegli. Il metodo restituisce true se è possibile segnalare al prigioniero, in base allo stato dei due personaggi. Altrimenti restituisce false:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementa il metodo (static) QuestLogic.CanFreePrisoner(), che riceve quattro valori booleani. I primi tre parametri indicano, rispettivamente, se il cavaliere, l'arciere e il prigioniero sono svegli. L'ultimo parametro indica se il cane di Annalyn è presente. Il metodo restituisce true se è possibile liberare il prigioniero, in base allo stato dei tre personaggi e alla presenza del cane di Annalyn. Altrimenti restituisce false:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Iscriviti a Exercism per imparare e padroneggiare C# con 62 concetti178 esercizi e il mentoring di persone reali, tutto gratis.