Kurzusok
/
C#
C#
/
Feladatok
/
Annalyn beszivárgása
Annalyn beszivárgása

Annalyn beszivárgása

Tanulófeladat

Bevezetés

Boolean-ok

A C#-ban a Boolean értékeket a bool típus reprezentálja, amelynek értékei true vagy false lehetnek.

A C# három Boolean operátort támogat: ! (NEM), && (ÉS) és || (VAGY).

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 kislá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 bogyókat keres 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, 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, hogy az alábbi cselekvések közül melyiket hajthatja végre:

  • Gyors támadás: gyors támadást akkor lehet végrehajtani, ha a lovag alszik, mivel időbe telik, mire felveszi a páncélját, így sebezhető lesz.
  • Kémkedés: a csoportot akkor lehet megfigyelni, 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, mivel az íjászokat kiképezik a madárjelekre, így elcsíphetnék az üzenetet.
  • Fogoly kiszabadítása: Annalyn megpróbálhat belopózni a táborba, hogy kiszabadítsa a foglyot. Ez kockázatos dolog, é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, és az íjász nem ér rá felkészülni, mielőtt Annalyn és a fogoly elmenekül.
    • Ha Annalyn nincs ott a kutyája, 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, de ha a fogoly alszik, nem lehet kiszabadítani: a fogoly megijedne Annalyn hirtelen felbukkanásától, és felébresztené a lovagot meg az íjászt.

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

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

Valósítsd meg a (statikus) QuestLogic.CanFastAttack() metódust, amely egy Boolean értéket vár, ami azt jelzi, hogy a lovag ébren van-e. A metódus true értéket ad vissza, ha a lovag állapota alapján végrehajtható gyors támadás. Egyébként false értéket ad vissza:

var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false

2. Ellenőrizd, hogy megfigyelhető-e a csoport

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

var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

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

Valósítsd meg a (statikus) QuestLogic.CanSignalPrisoner() metódust, amely két Boolean értéket vár, rendre azt jelezve, hogy az íjász és a fogoly ébren van-e. A metódus 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:

var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

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

Valósítsd meg a (statikus) QuestLogic.CanFreePrisoner() metódust, amely négy Boolean értéket vár. 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 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:

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