A Bool típus a nyelv egyik építőköve.
Arra szolgál, hogy leírja, igaz-e vagy hamis valami, a megfelelő True és False értékekkel.
A Boolean értékeket a && („AND”) és a || („OR”) operátorral lehet összekapcsolni, a not függvénnyel pedig negálni.
A Boolean értékek arra is kiválóan alkalmasak, hogy elágazásokat hozz létre a kódodban, amelyek csak akkor futnak le, ha bizonyos feltételek teljesülnek.
Elmben ezt egy if-then-else kifejezéssel oldjuk meg, a következőképpen:
if someCondition || (someOtherCondition && anotherCondition) then
doSomething
else
doSomethingElse
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 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ábukkan 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:
Öt részfeladatod van: megvalósítani a logikát, amely a három, az erdőben talált szereplő állapota, valamint Annalyn kutyájának jelenléte vagy hiánya alapján meghatározza, hogy a fenti cselekvések elvégezhetők-e.
Valósítsd meg a canFastAttack függvényt, amely egy Boolean értéket vár, ami megadja, 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. Ellenkező esetben False értéket ad vissza:
knightIsAwake = True
canFastAttack knightIsAwake
--> False
Valósítsd meg a canSpy függvényt, amely három Boolean értéket vár, és ezek rendre azt adják meg, 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 a csoport kikémlelhető. Ellenkező esetben False értéket ad vissza:
knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False
canSpy knightIsAwake archerIsAwake prisonerIsAwake
--> True
Valósítsd meg a canSignalPrisoner függvényt, amely két Boolean értéket vár, és ezek rendre azt adják meg, 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. Ellenkező esetben False értéket ad vissza:
archerIsAwake = False
prisonerIsAwake = True
canSignalPrisoner archerIsAwake prisonerIsAwake
--> True
Valósítsd meg a canFreePrisoner függvényt, amely négy Boolean értéket vár. Az első három paraméter rendre azt adja meg, hogy a lovag, az íjász és a fogoly ébren van-e. Az utolsó paraméter azt adja meg, hogy Annalyn kutyája ott 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 kiszabadítható a fogoly. Ellenkező esetben False értéket ad vissza:
knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False
petDogIsPresent = False
canFreePrisoner knightIsAwake archerIsAwake prisonerIsAwake petDogIsPresent
--> False
Valósítsd meg a stealthAttackDamage függvényt, amely egy Boolean értéket vár, ami megadja, hogy észrevették-e Annalynt. A függvény 7-et ad vissza, ha észrevették, egyébként 12-t.
annalynIsDetected = True
stealthAttackDamage annalynIsDetected
--> 7
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.