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

Annalyn beszivárgása

Tanulófeladat

Bevezetés

A Cairo-ban a Boolean értékeket az előre deklarált bool Boolean-típus képviseli, amelynek értéke true vagy false lehet.

let speeding = true;   // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false' 

A Cairo három logikai operátort támogat, amelyek a kifejezéseket Boolean értékké értékelhetik ki, és true vagy false értéket adnak vissza.

Operátor Mit jelent
&& (és) Akkor igaz, ha mindkét állítás igaz.
|| (vagy) Akkor igaz, ha legalább az egyik állítás igaz.
! (nem) Csak akkor igaz, ha az állítás hamis.

Utasítások

Ebben a feladatban egy barátod által fejlesztett új RPG-játék küldetéslogikáját fogod megvalósítani. 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 elrabolják, miközben az erdőben bogyókat keres. Annalyn megpróbálja megtalálni és kiszabadítani a legjobb barátját, és akár a kutyáját is magával viheti a küldetésre.

Miután egy ideig a legjobb barátja nyomát követi, rátalál a táborra, 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 elgondolkodik, 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, mert időbe telik, amíg felveszi a páncélját, addig pedig sebezhető.
  • Kémkedés: akkor lehet kémkedni a csoport után, ha legalább egyikük ébren van. Egyébként a kémkedés időpocsékolás.
  • A fogoly jelzése: a fogolynak madárhangokkal lehet jelezni, ha a fogoly ébren van és az íjász alszik, mert az íjászokat madárhangos jelzésre képzik ki, így elkaphatnák az üzenetet.
  • A fogoly kiszabadítása: Annalyn megpróbálhat belopakodni a táborba, hogy kiszabadítsa a foglyot. Ez kockázatos, és csak kétféleképpen sikerülhet:
    • Ha Annalyn magával hozta a kutyáját, akkor ki tudja szabadítani a foglyot, ha az íjász alszik. A lovag fél a kutyától, az íjásznak pedig nem lesz ideje felkészülni, mielőtt Annalyn és a fogoly elmenekül.
    • Ha Annalyn nincs ott a kutyájával, akkor neki és a fogolynak nagyon óvatosnak kell lennie! Annalyn akkor szabadíthatja ki a foglyot, ha a fogoly ébren van, a lovag és az íjász pedig alszik. Ha viszont a fogoly alszik, nem lehet megmenteni: Annalyn hirtelen felbukkanása megijesztené, és felébresztené a lovagot meg az íjászt.

Négy részfeladatod van: megvalósítani azt a logikát, amely az erdőben talált három szereplő állapota, valamint Annalyn kutyájának jelenléte vagy hiánya alapján eldönti, hogy a fenti akciók közül melyik hajtható végre.

1. Ellenőrizd, hogy végrehajtható-e egy gyors támadás

Definiáld a can_fast_attack() függvényt, amely egy boolean értéket vár, ami megmutatja, hogy a lovag ébren van-e. A függvény true értéket ad vissza, ha a lovag állapota alapján végrehajtható egy gyors támadás. Egyébként false értéket ad vissza:

let knight_awake = true;
can_fast_attack(knight_awake); // false

2. Ellenőrizd, hogy kémkedni lehet-e a csoport után

Definiáld a can_spy() függvényt, amely három boolean értéket vár: ezek rendre azt mutatják, hogy a lovag, az íjász és a fogoly ébren van-e. A függvény true értéket ad vissza, ha a három szereplő állapota alapján kémkedni lehet a csoport után. Egyébként false értéket ad vissza:

let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true

3. Ellenőrizd, hogy jelezni lehet-e a fogolynak

Definiáld a can_signal_prisoner() függvényt, amely két boolean értéket vár: ezek rendre azt mutatják, hogy az íjász és a fogoly ébren van-e. A függvény true értéket ad vissza, ha a két szereplő állapota alapján jelezni lehet a fogolynak. Egyébként false értéket ad vissza:

let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true

4. Ellenőrizd, hogy ki lehet-e szabadítani a foglyot

Definiáld a can_free_prisoner() függvényt, amely négy boolean értéket vár. Az első három paraméter rendre azt mutatja, hogy a lovag, az íjász és a fogoly ébren van-e. Az utolsó paraméter azt jelzi, hogy Annalyn kutyája jelen van-e. A függvény true értéket ad vissza, ha a három szereplő állapota és Annalyn kutyájának jelenléte alapján ki lehet szabadítani a foglyot. Egyébként false értéket ad vissza:

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
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Cairo 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) Cairo nyelvet 25 fogalom68 feladat segítségével, valódi emberi mentorálással, mindez ingyen.