Boolesche Werte in Cairo werden durch den vordeklarierten booleschen Typ bool dargestellt, dessen Werte entweder true oder false sein können.
let speeding = true; // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false'
Cairo unterstützt drei logische Operatoren, die Ausdrücke zu booleschen Werten auswerten und entweder true oder false zurückgeben.
| Operator | Bedeutung |
|---|---|
&& (und) |
Ist wahr, wenn beide Aussagen wahr sind. |
|| (oder) |
Ist wahr, wenn mindestens eine Aussage wahr ist. |
! (nicht) |
Ist nur wahr, wenn die Aussage falsch ist. |
In dieser Übung implementierst du die Quest-Logik für ein neues RPG-Spiel, das ein Freund entwickelt. Die Hauptfigur des Spiels ist Annalyn, ein mutiges Mädchen mit einem wilden und treuen Hund. Doch dann schlägt das Unglück zu: Ihre beste Freundin wurde entführt, während sie im Wald Beeren suchte. Annalyn wird versuchen, ihre beste Freundin zu finden und zu befreien, und dabei optional ihren Hund mit auf diese Quest nehmen.
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 Annalyn die Entführer gefunden hat, überlegt sie, welche der folgenden Aktionen sie ausführen kann:
Du hast vier Aufgaben: Du sollst die Logik implementieren, die anhand des Zustands der drei im Wald gefundenen Charaktere und der Anwesenheit von Annalyns Hund bestimmt, ob die oben genannten Aktionen verfügbar sind.
Definiere die Funktion can_fast_attack(), die einen booleschen Wert entgegennimmt, der angibt, ob der Ritter wach ist.
Diese Funktion gibt true zurück, wenn ein Schnellangriff basierend auf dem Zustand des Ritters möglich ist.
Andernfalls gibt sie false zurück:
let knight_awake = true;
can_fast_attack(knight_awake); // false
Definiere die Funktion can_spy(), die drei boolesche Werte entgegennimmt, die angeben, ob der Ritter, der Bogenschütze bzw. der Gefangene wach ist.
Die Funktion gibt true zurück, wenn die Gruppe ausspioniert werden kann, basierend auf dem Zustand der drei Charaktere.
Andernfalls gibt sie false zurück:
let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true
Definiere die Funktion can_signal_prisoner(), die zwei boolesche Werte entgegennimmt, die angeben, ob der Bogenschütze bzw. der Gefangene wach ist.
Die Funktion gibt true zurück, wenn der Gefangene signalisiert werden kann, basierend auf dem Zustand der beiden Charaktere.
Andernfalls gibt sie false zurück:
let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true
Definiere die Funktion can_free_prisoner(), die vier boolesche Werte entgegennimmt.
Die ersten drei Parameter geben an, ob der Ritter, der Bogenschütze bzw. der Gefangene wach ist.
Der letzte Parameter gibt an, ob Annalyns Hund anwesend ist.
Die Funktion gibt true zurück, wenn der Gefangene befreit werden kann, basierend auf dem Zustand der drei Charaktere und der Anwesenheit von Annalyns Hund.
Andernfalls gibt sie false zurück:
let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
let dog_present = false;
can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present); // false
Melde dich bei Exercism an, um Cairo mit 25 Konzepte68 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.