Tracks
/
JavaScript
JavaScript
/
Übungen
/
Annalyns Infiltration
Annalyns Infiltration

Annalyns Infiltration

Lernübung

Einführung

Ein boolescher Wert stellt einen von zwei Werten dar: true oder false. Logische Operatoren (!, &&, ||) werden für gewöhnlich mit booleschen Werten verwendet und geben selbst einen booleschen Wert zurück.

Anleitung

In dieser Übung implementierst du die Quest-Logik für ein neues RPG, das ein Freund gerade 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 nach Beeren suchte. Annalyn versucht, ihre beste Freundin zu finden und zu befreien, wobei sie ihren Hund auf dieser Quest optional mitnimmt.

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 gerissenen Bogenschützen.

Nachdem Annalyn die Entführer gefunden hat, überlegt sie, welche der folgenden Aktionen sie ausführen kann:

  • Schnellangriff: Ein Schnellangriff ist möglich, wenn der Ritter schläft, denn er braucht Zeit, um seine Rüstung anzulegen, und ist dann verwundbar.
  • Spionieren: Die Gruppe kann ausspioniert werden, wenn mindestens einer von ihnen wach ist. Andernfalls ist Spionieren Zeitverschwendung.
  • Gefangenen signalisieren: Dem Gefangenen kann mithilfe von Vogelrufen ein Signal gegeben werden, wenn der Gefangene wach ist und der Bogenschütze schläft, denn Bogenschützen sind im Signalisieren mit Vogelrufen ausgebildet, sodass sie die Nachricht abfangen könnten.
  • Gefangenen befreien: Annalyn kann versuchen, sich ins Lager zu schleichen, um den Gefangenen zu befreien. Das ist riskant und gelingt nur auf eine von zwei Arten:
    • Wenn Annalyn ihren Hund dabei hat, kann sie den Gefangenen befreien, wenn der Bogenschütze schläft. Der Ritter hat Angst vor dem Hund, und der Bogenschütze wird keine Zeit haben, sich bereit zu machen, bevor Annalyn und der Gefangene entkommen können.
    • Wenn Annalyn ihren Hund nicht dabei hat, müssen sie und der Gefangene sehr vorsichtig vorgehen! Annalyn kann den Gefangenen befreien, wenn der Gefangene wach ist und der Ritter und der Bogenschütze beide schlafen, aber wenn der Gefangene schläft, kann er nicht befreit werden: Der Gefangene würde durch Annalyns plötzliches Auftauchen erschrecken und den Ritter und den Bogenschützen aufwecken.

Du hast vier Aufgaben: die Logik zu implementieren, mit der du anhand des Zustands der drei im Wald gefundenen Figuren und der Anwesenheit von Annalyns Hund feststellst, ob die oben genannten Aktionen möglich sind.

1. Prüfe, ob die Aktion „Schnellangriff“ möglich ist

Implementiere eine Funktion namens canExecuteFastAttack, die einen booleschen Wert entgegennimmt, der angibt, ob der Ritter wach ist. Diese Funktion gibt true zurück, wenn die Aktion „Schnellangriff“ anhand des Zustands der Figur möglich ist. Andernfalls gibt sie false zurück:

const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false

2. Prüfe, ob die Aktion „Spionieren“ möglich ist

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“ anhand des Zustands der Figuren möglich ist. Andernfalls gibt sie false zurück:

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

3. Prüfe, ob die Aktion „Gefangenen signalisieren“ möglich ist

Implementiere eine Funktion namens canSignalPrisoner, 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“ anhand des Zustands der Figuren möglich ist. Andernfalls gibt sie false zurück:

const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. Prüfe, ob die Aktion „Gefangenen befreien“ möglich ist

Implementiere eine Funktion namens canFreePrisoner, 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 dabei ist. Die Funktion gibt true zurück, wenn die Aktion „Gefangenen befreien“ anhand des Zustands der Figuren und der Anwesenheit von Annalyns Hund möglich ist. Andernfalls gibt sie false zurück:

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
JavaScript Exercism

Bereit, mit Annalyns Infiltration zu starten?

Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.