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

Annalyn beszivárgása

Tanulófeladat

Bevezetés

Boolean-ok

A Boolean-okat Java-ban a boolean típus képviseli, amelynek az értéke true vagy false lehet.

A Java három logikai operátort támogat:

  • ! (NOT): negálja a Boolean értékét
  • && (AND): két Boolean értéket kap, és true-t ad vissza, ha mindkettő true
  • || (OR): true-t ad vissza, ha a két Boolean érték közül bármelyik true

Példák

!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true

Utasítások

Ebben a feladatban egy új RPG játék küldetéslogikáját valósítod meg, amelyet egy barátod fejleszt. 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 barátját, és a küldetésre akár a kutyáját is magával viheti.

Miután egy ideig követte a nyomokat, Annalyn 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 végiggondolja, melyik alábbi akcióba kezdhet:

  • 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ővé válik.
  • Kémkedés: a csoportot akkor lehet kikémlelni, ha legalább az egyikük ébren van. Egyébként a kémkedés időpocsékolás.
  • Jelzés a fogolynak: a fogolynak madárhangokkal lehet jelezni, ha a fogoly ébren van, és az íjász alszik. Az íjászokat kiképezték a madárjelekre, és ha ébren vannak, elcsíphetik az üzenetet.
  • A fogoly kiszabadítása: Annalyn megpróbálhat belopózni 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 kiszabadíthatja 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ül.
    • Ha Annalyn nem hozta magával a kutyáját, 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 kiszabadítani, mert Annalyn hirtelen felbukkanása megijesztené, és felébresztené a lovagot meg az íjászt.

Négy részfeladatod van: megvalósítani a logikát, amely az erdőben lévő három szereplő állapota, valamint Annalyn kutyájának jelenléte alapján eldönti, hogy a fenti akciók elvégezhetők-e.

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

Valósítsd meg a (statikus) AnnalynsInfiltration.canFastAttack() metódust, amely egy boolean értéket vár, jelezve, hogy a lovag ébren van-e. A metódus 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:

boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false

2. Ellenőrizd, hogy kikémlelhető-e a csoport

Valósítsd meg a (statikus) AnnalynsInfiltration.canSpy() metódust, amely három boolean értéket vár, jelezve, hogy a lovag, az íjász, illetve a fogoly ébren van-e. A metódus true értéket ad vissza, ha a három szereplő állapota alapján kikémlelhető a csoport. Egyébként false értéket ad vissza:

boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

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

Valósítsd meg a (statikus) AnnalynsInfiltration.canSignalPrisoner() metódust, amely két boolean értéket vár, jelezve, hogy az íjász, illetve a fogoly ébren van-e. A metódus true értéket ad vissza, ha a két szereplő állapota alapján lehet jelezni a fogolynak. Egyébként false értéket ad vissza:

boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. Ellenőrizd, hogy kiszabadítható-e a fogoly

Valósítsd meg a (statikus) AnnalynsInfiltration.canFreePrisoner() metódust, amely négy boolean értéket vár. Az első három paraméter jelzi, hogy a lovag, az íjász, illetve a fogoly ébren van-e. Az utolsó paraméter jelzi, hogy Annalyn kutyája jelen van-e. A metódus true értéket ad vissza, ha a három szereplő állapota és Annalyn kutyájának jelenléte alapján kiszabadítható a fogoly. Egyébként false értéket ad vissza:

boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Java 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) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.