A Gleam az igaz és hamis értékeket a Bool típussal ábrázolja. Mindössze két érték létezik: True és False. Ezeket az értékeket egy változóhoz is kötheted:
let true_variable = True
let false_variable = False
A &&, || és ! operátorok segítségével Boolean értékekkel végezhetsz műveleteket:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
A && és || operátor rövidzár-kiértékelést használ, ami azt jelenti, hogy az operátor jobb oldalán szereplő kifejezés csak akkor értékelődik ki, ha szükséges.
Az egyes operátorok precedenciája eltérő: a ! a && és || előtt értékelődik ki. A kapcsos zárójelekkel elérheted, hogy a kifejezés egy része a többiek előtt értékelődjön ki:
!True && False // -> False
!{True && False} // -> True
Ebben a feladatban a klasszikus Pac-Man játék néhány szabályát kell lefordítanod Gleam-függvényekre.
Négy szabályt kell lefordítanod, amelyek mind a játék állapotaihoz kapcsolódnak.
Ne foglalkozz azzal, hogy honnan származnak az argumentumok, csak azzal, hogy a kívánt eredmény visszaadásához hogyan kombináld őket.
Határozd meg az eat_ghost függvényt, amely két argumentumot vár (hogy aktív-e Pac-Mannél egy energialabda, illetve hogy hozzáér-e Pac-Man egy szellemhez), és Boolean értéket ad vissza arról, hogy Pac-Man meg tudja-e enni a szellemet. A függvény csak akkor adjon vissza True-t, ha Pac-Mannek aktív egy energialabdája, és hozzáér egy szellemhez.
eat_ghost(False, True)
// -> False
Határozd meg a score függvényt, amely két argumentumot vár (hogy hozzáér-e Pac-Man egy energialabdához, illetve hogy hozzáér-e Pac-Man egy ponthoz), és Boolean értéket ad vissza arról, hogy Pac-Man szerzett-e pontot. A függvény akkor adjon vissza True-t, ha Pac-Man hozzáér egy energialabdához vagy egy ponthoz.
score(True, True)
// -> True
Határozd meg a lose függvényt, amely két argumentumot vár (hogy aktív-e Pac-Mannél egy energialabda, illetve hogy hozzáér-e Pac-Man egy szellemhez), és Boolean értéket ad vissza arról, hogy Pac-Man veszít-e. A függvény akkor adjon vissza True-t, ha Pac-Man hozzáér egy szellemhez, és nincs nála aktív energialabda.
lose(False, True)
// -> True
Határozd meg a win függvényt, amely három argumentumot vár (hogy Pac-Man megette-e az összes pontot, hogy aktív-e Pac-Mannél egy energialabda, és hogy hozzáér-e Pac-Man egy szellemhez), és Boolean értéket ad vissza arról, hogy Pac-Man nyer-e. A függvény akkor adjon vissza True-t, ha Pac-Man megette az összes pontot, és a 3. részben meghatározott argumentumok alapján nem veszített.
win(False, True, False)
// -> False
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Gleam nyelvet 33 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.