Der Typ bool (kurz für boolescher Wert) hat nur zwei Werte: true und false.
Bei den Literalwerten true und false spielt die Groß- und Kleinschreibung im Code keine Rolle.
<?php
$value_is_true = true;
$value_is_false = false;
Boolesche Werte sind häufig das Ergebnis eines Operators in einem logischen Ausdruck und werden dann in Kontrollstrukturen verwendet.
Es gibt mehrere logische Operatoren:
!$a: gibt true zurück, wenn $a nicht true ist$a && $b: gibt true zurück, wenn sowohl $a als auch $b true sind$a || $b: gibt true zurück, wenn $a oder $b true istEs gibt die Operatoren and und or, die jeweils komplementär zu && und || sind.
Sie verhalten sich nicht wie && und || und können unerwartete Ergebnisse liefern, deshalb wird von ihrer Verwendung abgeraten.
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. Unglücklicherweise schlägt das Unheil zu, denn ihre beste Freundin wurde entführt, während sie im Wald nach Beeren suchte. Annalyn versucht, ihre beste Freundin zu finden und zu befreien, wobei sie ihren Hund auf dieser Quest mitnehmen kann.
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: die Logik zu implementieren, die anhand des Zustands der drei im Wald gefundenen Figuren und der Anwesenheit von Annalyns Hund bestimmt, ob die oben genannten Aktionen möglich sind.
Implementiere eine Funktion namens canFastAttack, die einen booleschen Wert entgegennimmt, der angibt, ob der Ritter wach ist.
Die Funktion gibt true zurück, wenn die Aktion ‚Schneller Angriff‘ basierend auf dem Zustand der Figur möglich ist.
Andernfalls gibt sie false zurück:
<?php
$is_knight_awake = true;
$infiltration = new AnnalynsInfiltration();
$infiltration->canFastAttack($is_knight_awake);
// => false
Implementiere eine Funktion namens canSpy, 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 Aktion ‚Spionieren‘ basierend auf dem Zustand der Figuren möglich ist.
Andernfalls gibt sie false zurück:
<?php
$is_knight_awake = false;
$is_archer_awake = true;
$is_prisoner_awake = false;
$infiltration = new AnnalynsInfiltration();
$infiltration->canSpy($is_knight_awake, $is_archer_awake, $is_prisoner_awake);
// => true
Implementiere eine Funktion namens canSignal, die zwei boolesche Werte entgegennimmt, die angeben, ob der Bogenschütze bzw. der Gefangene wach ist.
Die Funktion gibt true zurück, wenn die Aktion ‚Gefangenen signalisieren‘ basierend auf dem Zustand der Figuren möglich ist.
Andernfalls gibt sie false zurück:
<?php
$is_archer_awake = false;
$is_prisoner_awake = true;
$infiltration = new AnnalynsInfiltration();
$infiltration->canSignal($is_archer_awake, $is_prisoner_awake);
// => true
Implementiere eine Funktion namens canLiberate, 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 die Aktion ‚Gefangenen befreien‘ basierend auf dem Zustand der Figuren und der Anwesenheit von Annalyns Hund möglich ist.
Andernfalls gibt sie false zurück:
<?php
$is_knight_awake = false;
$is_archer_awake = true;
$is_prisoner_awake = false;
$is_dog_present = false;
$infiltration = new AnnalynsInfiltration();
$infiltration->canLiberate(
$is_knight_awake,
$is_archer_awake,
$is_prisoner_awake,
$is_dog_present
);
// => false
Melde dich bei Exercism an, um PHP mit 11 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.