Az Elixir az igaz és hamis értékeket a Boolean típussal ábrázolja. Csak két érték van: true és false. Ezek az értékek egy változóhoz köthetők:
true_variable = true
false_variable = false
Szigorú Boolean-kifejezéseket értékelhetünk ki a and/2, or/2 és not/1 operátorokkal.
true_variable = true and true
false_variable = true and false
true_variable = false or true
false_variable = false or false
true_variable = not false
false_variable = not true
Amikor olyan függvényt írsz, amely Boolean értéket ad vissza, szokás a függvénynév végére egy ?-t tenni. Ugyanezt a konvenciót alkalmazhatod azoknál a változóknál is, amelyek Boolean értékeket tárolnak.
def either_true?(a?, b?) do
a? or b?
end
Ebben a feladatban a klasszikus Pac-Man játék néhány szabályát kell Elixir-függvényekké alakítanod.
Négy szabályt kell lefordítanod, amelyek mind a játék állapotaihoz kapcsolódnak.
Ne foglalkozz azzal, hogyan származnak az argumentumok, csak arra összpontosíts, hogy az argumentumok kombinálásával a kívánt eredményt add vissza.
Definiáld a Rules.eat_ghost?/2 függvényt, amely két argumentumot vár (hogy Pac-Mannek aktív-e az energiagolyója, és hogy Pac-Man éppen hozzáér-e egy szellemhez), és egy boolean értéket ad vissza arról, hogy Pac-Man meg tudja-e enni a szellemet. A függvény csak akkor adjon vissza igazat, ha Pac-Mannek aktív az energiagolyója, és éppen hozzáér egy szellemhez.
Rules.eat_ghost?(false, true)
# => false
Definiáld a Rules.score?/2 függvényt, amely két argumentumot vár (hogy Pac-Man éppen hozzáér-e egy energiagolyóhoz, és hogy Pac-Man éppen hozzáér-e egy ponthoz), és egy boolean értéket ad vissza arról, hogy Pac-Man pontot szerzett-e. A függvény akkor adjon vissza igazat, ha Pac-Man éppen hozzáér egy energiagolyóhoz vagy egy ponthoz.
Rules.score?(true, true)
# => true
Definiáld a Rules.lose?/2 függvényt, amely két argumentumot vár (hogy Pac-Mannek aktív-e az energiagolyója, és hogy Pac-Man éppen hozzáér-e egy szellemhez), és egy boolean értéket ad vissza arról, hogy Pac-Man veszít-e. A függvény akkor adjon vissza igazat, ha Pac-Man éppen hozzáér egy szellemhez, és nincs aktív energiagolyója.
Rules.lose?(false, true)
# => true
Definiáld a Rules.win?/3 függvényt, amely három argumentumot vár (hogy Pac-Man megette-e az összes pontot, hogy Pac-Mannek aktív-e az energiagolyója, és hogy Pac-Man éppen hozzáér-e egy szellemhez), és egy boolean értéket ad vissza arról, hogy Pac-Man nyer-e. A függvény akkor adjon vissza igazat, ha Pac-Man megette az összes pontot, és a 3. részben meghatározott argumentumok alapján nem veszített.
Rules.win?(false, true, false)
# => false
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elixir nyelvet 58 fogalom168 feladat segítségével, valódi emberi mentorálással, mindez ingyen.