A F#-ban a Boolean értékeket a bool típus képviseli, melynek értéke true vagy false lehet.
A F# három Boolean-operátort támogat: a not (NOT), a && (AND) és a || (OR) operátort.
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 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 akár a kutyáját is magával viheti erre a küldetésre.
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 cselekvések közül melyeket tudja végrehajtani:
Négy részfeladatod van: megvalósítani 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 cselekvések elvégezhetők-e.
Valósítsd meg a canFastAttack 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 lovag állapota alapján végrehajtható egy gyors támadás. Egyébként false-t ad vissza:
let knightIsAwake = true
canFastAttack(knightIsAwake)
// => false
Valósítsd meg a canSpy függvényt, amely három Boolean értéket kap: 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 három szereplő állapota alapján kikémlelhető a csoport. Egyébként false-t ad vissza:
let knightIsAwake = false
let archerIsAwake = true
let prisonerIsAwake = false
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)
// => true
Valósítsd meg a canSignalPrisoner függvényt, amely két Boolean értéket kap: ezek rendre azt jelzik, hogy az íjász és a fogoly ébren van-e. A függvény true-t ad vissza, ha a két szereplő állapota alapján jelezni lehet a fogolynak. Egyébként false-t ad vissza:
let archerIsAwake = false
let prisonerIsAwake = true
canSignalPrisoner(archerIsAwake, prisonerIsAwake)
// => true
Valósítsd meg a canFreePrisoner 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 Annalyn kutyája ott van-e. A függvény true-t 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-t ad vissza:
let knightIsAwake = false
let archerIsAwake = true
let prisonerIsAwake = false
let petDogIsPresent = false
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent)
// => false
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) F# nyelvet 18 fogalom148 feladat segítségével, valódi emberi mentorálással, mindez ingyen.