Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Annalyn beszivárgása
Annalyn beszivárgása

Annalyn beszivárgása

Tanulófeladat

Bevezetés

A Boolean két érték egyikét reprezentálja: true vagy false. A logikai operátorokat (!, &&, ||) jellemzően Boolean értékekkel használjuk, és Boolean értéket adnak vissza.

Utasítások

Ebben a feladatban egy barátod új RPG-jének küldetéslogikáját készíted el. A játék főszereplője Annalyn, egy bátor lány, akinek van egy elszánt és hűséges kutyája. Sajnos azonban baj történik: a legjobb barátját elrabolták, miközben bogyókat keresett az erdőben. Annalyn megpróbálja megtalálni és kiszabadítani a legjobb barátját, és erre a küldetésre akár a kutyáját is magával viheti.

Miután egy ideig a legjobb barátja nyomát követi, megtalálja a tábort, ahol a barátját fogva tartják. Kiderül, hogy két emberrabló van: egy hatalmas lovag és egy ravasz íjász.

Miután megtalálta az emberrablókat, Annalyn végiggondolja, hogy az alábbi akciók közül melyiket tudja végrehajtani:

  • Gyors támadás: gyors támadást akkor lehet végrehajtani, ha a lovag alszik, mivel időbe telik, míg felveszi a páncélját, így sebezhető lesz.
  • Kémkedés: a csoportot akkor lehet kikémlelni, ha legalább az egyikük ébren van. Egyébként a kémkedés csak időpocsékolás.
  • Jelzés a fogolynak: a fogolynak madárhangokkal lehet jelezni, ha a fogoly ébren van, az íjász pedig alszik, mivel az íjászokat madárjelekre képezték ki, így elkaphatnák az üzenetet.
  • Fogoly kiszabadítása: Annalyn megpróbálhat belopakodni a táborba, hogy kiszabadítsa a foglyot. Ez kockázatos vállalkozás, és csak kétféleképpen sikerülhet:
    • Ha Annalyn magával hozta a kutyáját, akkor ki tudja menteni a foglyot, ha az íjász alszik. A lovag fél a kutyától, és az íjásznak nem lesz ideje felkészülni, mielőtt Annalyn és a fogoly elmenekülhet.
    • Ha Annalyn nem hozta magával a kutyáját, akkor neki és a fogolynak nagyon óvatosnak kell lennie! Annalyn akkor tudja kiszabadítani a foglyot, ha a fogoly ébren van, a lovag és az íjász pedig alszik, de ha a fogoly alszik, akkor nem menthető ki: a fogoly megijedne Annalyn hirtelen felbukkanásától, és felébresztené a lovagot meg az íjászt.

Négy feladatod van: megvalósítani a logikát annak meghatározásához, hogy a fenti akciók elérhetők-e az erdőben talált három szereplő állapota, valamint Annalyn kutyájának jelenléte vagy hiánya alapján.

1. Nézd meg, hogy a »Gyors támadás« akció lehetséges-e

Készíts egy canExecuteFastAttack nevű függvényt, amely egy Boolean értéket kap, ami azt jelzi, hogy a lovag ébren van-e. A függvény true-t ad vissza, ha a »Gyors támadás« akció elérhető a szereplő állapota alapján. Egyébként false-t ad vissza:

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

2. Nézd meg, hogy a »Kémkedés« akció lehetséges-e

Készíts egy canSpy nevű függvényt, amely három Boolean értéket kap, és ezek rendre azt jelzik, hogy a lovag, az íjász és a fogoly ébren van-e. A függvény true-t ad vissza, ha a »Kémkedés« akció elérhető a szereplők állapota alapján. Egyébként false-t ad vissza:

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

3. Nézd meg, hogy a »Jelzés a fogolynak« akció lehetséges-e

Készíts egy canSignalPrisoner nevű függvényt, amely két Boolean értéket kap, és ezek rendre azt jelzik, hogy az íjász és a fogoly ébren van-e. A függvény true-t ad vissza, ha a »Jelzés a fogolynak« akció elérhető a szereplők állapota alapján. Egyébként false-t ad vissza:

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

4. Nézd meg, hogy a »Fogoly kiszabadítása« akció lehetséges-e

Készíts egy canFreePrisoner nevű függvényt, amely négy Boolean értéket kap. Az első három paraméter rendre azt jelzi, hogy a lovag, az íjász és a fogoly ébren van-e. Az utolsó paraméter azt jelzi, hogy ott van-e Annalyn kutyája. A függvény true-t ad vissza, ha a »Fogoly kiszabadítása« akció elérhető a szereplők állapota és Annalyn kutyájának jelenléte alapján. Egyébként false-t ad vissza:

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Annalyn beszivárgása feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.