Boolesche Werte werden in C# durch den Typ bool dargestellt, dessen Werte entweder true oder false sein können.
C# unterstützt drei boolesche Operatoren: ! (NICHT), && (UND) und || (ODER).
In dieser Übung implementierst du die Quest-Logik für ein neues Rollenspiel, das ein Freund von dir entwickelt.
Die Hauptfigur des Spiels ist Annalyn, ein mutiges Mädchen mit einem treuen und furchtlosen Hund. Doch dann schlägt das Unglück zu: Ihre beste Freundin wurde entführt, während sie im Wald nach Beeren suchte.
Annalyn wird versuchen, ihre beste Freundin zu finden und zu befreien, wobei sie ihren Hund optional mit auf diese Quest nimmt.
Nachdem sie eine Zeit lang der Spur ihrer besten Freundin gefolgt ist, findet sie das Lager, in dem ihre beste Freundin gefangen gehalten wird. Es stellt sich heraus, dass es zwei Entführer gibt: einen mächtigen Ritter und einen listigen Bogenschützen.
Nachdem sie die Entführer gefunden hat, überlegt Annalyn, welche der folgenden Aktionen sie ausführen kann:
Du hast vier Aufgaben: die Logik zu implementieren, die anhand des Zustands der drei Figuren im Wald und der Anwesenheit von Annalyns Hund entscheidet, ob die oben genannten Aktionen möglich sind.
Implementiere die (statische) Methode QuestLogic.CanFastAttack(). Sie nimmt einen booleschen Wert entgegen, der angibt, ob der Ritter wach ist. Die Methode gibt true zurück, wenn aufgrund des Zustands des Ritters ein schneller Angriff möglich ist. Andernfalls gibt sie false zurück:
var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false
Implementiere die (statische) Methode QuestLogic.CanSpy(). Sie nimmt drei boolesche Werte entgegen, die angeben, ob der Ritter, der Bogenschütze bzw. die Gefangene wach sind. Die Methode gibt true zurück, wenn die Gruppe aufgrund des Zustands der drei Figuren ausspioniert werden kann. Andernfalls gibt sie false zurück:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementiere die (statische) Methode QuestLogic.CanSignalPrisoner(). Sie nimmt zwei boolesche Werte entgegen, die angeben, ob der Bogenschütze bzw. die Gefangene wach sind. Die Methode gibt true zurück, wenn der Gefangenen aufgrund des Zustands der beiden Figuren ein Signal gegeben werden kann. Andernfalls gibt sie false zurück:
var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementiere die (statische) Methode QuestLogic.CanFreePrisoner(). Sie nimmt vier boolesche Werte entgegen. Die ersten drei Parameter geben an, ob der Ritter, der Bogenschütze bzw. die Gefangene wach sind. Der letzte Parameter gibt an, ob Annalyns Hund dabei ist. Die Methode gibt true zurück, wenn die Gefangene aufgrund des Zustands der drei Figuren und der Anwesenheit von Annalyns Hund befreit werden kann. Andernfalls gibt sie false zurück:
var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
var petDogIsPresent = false;
QuestLogic.CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.