Boolesche Werte in Java werden durch den Typ boolean dargestellt, dessen Werte entweder true oder false sein können.
Java unterstützt drei boolesche Operatoren:
! (NOT): negiert den booleschen Wert&& (AND): nimmt zwei boolesche Werte und gibt true zurück, wenn beide true sind|| (OR): gibt true zurück, wenn mindestens einer der beiden booleschen Werte true ist!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true
In dieser Übung implementierst du die Quest-Logik für ein neues RPG, das ein Freund entwickelt. Die Hauptfigur des Spiels ist Annalyn, ein mutiges Mädchen mit einem wilden und treuen Hund. Doch dann geschieht ein Unglück: Ihre beste Freundin wurde entführt, als sie im Wald Beeren sammelte. Annalyn will ihre Freundin finden und befreien und nimmt auf ihrer Suche vielleicht ihren Hund mit.
Nachdem sie eine Weile der Spur gefolgt ist, entdeckt Annalyn das Lager, in dem ihre 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, mit der du anhand des Zustands der drei Figuren im Wald und der Anwesenheit von Annalyns Hund entscheidest, ob die oben genannten Aktionen möglich sind.
Implementiere die (statische) Methode AnnalynsInfiltration.canFastAttack(), die einen booleschen Wert entgegennimmt, der angibt, ob der Ritter wach ist.
Diese Methode gibt true zurück, wenn ein schneller Angriff basierend auf dem Zustand des Ritters möglich ist.
Andernfalls gibt sie false zurück:
boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false
Implementiere die (statische) Methode AnnalynsInfiltration.canSpy(), die drei boolesche Werte entgegennimmt, die angeben, ob der Ritter, der Bogenschütze bzw. der Gefangene wach sind.
Die Methode gibt true zurück, wenn die Gruppe basierend auf dem Zustand der drei Figuren ausspioniert werden kann.
Andernfalls gibt sie false zurück:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
Implementiere die (statische) Methode AnnalynsInfiltration.canSignalPrisoner(), die zwei boolesche Werte entgegennimmt, die angeben, ob der Bogenschütze bzw. der Gefangene wach sind.
Die Methode gibt true zurück, wenn dem Gefangenen basierend auf dem Zustand der beiden Figuren ein Signal gegeben werden kann.
Andernfalls gibt sie false zurück:
boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
Implementiere die (statische) Methode AnnalynsInfiltration.canFreePrisoner(), die vier boolesche Werte entgegennimmt.
Die ersten drei Parameter geben an, ob der Ritter, der Bogenschütze bzw. der Gefangene wach sind.
Der letzte Parameter gibt an, ob Annalyns Hund anwesend ist.
Die Methode gibt true zurück, wenn der Gefangene basierend auf dem Zustand der drei Figuren und der Anwesenheit von Annalyns Hund befreit werden kann.
Andernfalls gibt sie false zurück:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Melde dich bei Exercism an, um Java mit 26 Konzepte158 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.