Az igaz és hamis értékeket a Bool típus képviseli.
Csak két értéke van: true és false.
julia> true
true
julia> false
false
Három Boolean operátor van a Juliában.
A && a Boolean „és”.
true-ra értékelődik ki, ha a && mindkét oldalán álló kifejezés true.
julia> true && true
true
julia> true && false
false
A || a Boolean „vagy”.
true-ra értékelődik ki, ha a || valamelyik oldalán álló kifejezés true.
julia> true || true
true
julia> false || true
true
A ! a Boolean „nem”.
Felcseréli egymással a true és a false értékeket.
julia> !true
false
julia> !false
true
Hosszabb és bonyolultabb kifejezéseknél a legjobb, ha zárójelekkel teszed egyértelművé a szándékodat.
julia> (true || false) && (false && true)
false
Ebben a feladatban egy olyan videojátékhoz írsz logikát, amelyet egy barátod fejleszt. A játék főszereplője Annalyn, egy bátor lány, akinek van egy vad és hűséges kutyája. Sajnos azonban baj történik: elrabolják a legjobb barátját, miközben az bogyókat keres az erdőben. Annalyn megpróbálja megtalálni és kiszabadítani a barátját, és ehhez elképzelhető, hogy magával viszi a kutyáját is.
Annalyn végül megtalálja a tábort, ahol a barátját fogva tartják, és kiderül, hogy két emberrabló van: egy hatalmas lovag és egy ravasz íjász.
A játékos elé néhány lehetőség kerül, hogy mihez kezdhet ezután. A négy lehetséges lehetőség mindegyikéhez írnod kell egy függvényt, amely megmondja a játéknak, hogy megjelenítse-e az adott lehetőséget.
Ha a lovag alszik, Annalyn gyorsan be tud támadni a táborba, mielőtt az rendesen felébredne és felvenné a páncélját.
Készíts egy can_do_fast_attack nevű függvényt, amely egy Boolean értéket kap, ami megmutatja, hogy ébren van-e a lovag.
A függvény akkor ad vissza true értéket, ha a karakter állapota alapján a »Gyors támadás« művelet elérhető. Ellenkező esetben false értéket ad vissza:
julia> knight_awake = true
julia> can_do_fast_attack(knight_awake)
false
A csoportot akkor lehet kikémlelni, ha legalább az egyikük ébren van. Ellenkező esetben a kémkedés időpazarlás.
Készíts egy can_spy nevű függvényt, amely három Boolean értéket kap, rendre megmutatva, hogy a lovag, az íjász és a fogoly ébren van-e.
A függvény akkor ad vissza true értéket, ha a karakterek állapota alapján a »Kémkedés« művelet elérhető.
Ellenkező esetben false értéket ad vissza:
# Output suppressed from the next 3 lines
julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false
julia> can_spy(knight_awake, archer_awake, prisoner_awake)
true
A fogolynak madárhangokkal lehet jelezni, ha ébren van, és az íjász alszik. Ha az íjász ébren van, akkor nem lehet biztonságosan jelezni neki, mert az íjász is képzett a madárjelekben.
Készíts egy can_signal_prisoner nevű függvényt, amely két Boolean értéket kap, rendre megmutatva, hogy az íjász és a fogoly ébren van-e.
A függvény akkor ad vissza true értéket, ha a karakterek állapota alapján a »Jelzés a fogolynak« művelet elérhető.
Ellenkező esetben false értéket ad vissza:
julia> archer_awake = false
julia> prisoner_awake = true
julia> can_signal_prisoner(archer_awake, prisoner_awake)
true
Annalyn megpróbálhat belopakodni a táborba, hogy kiszabadítsa a barátját. Ez kockázatos vállalkozás, és csak kétféleképpen sikerülhet:
Ha Annalyn magával hozta a kutyáját, akkor ki tudja menteni a foglyot, ha az íjász alszik. A lovag fél a kutyától, az íjász pedig nem tud felkészülni, mielőtt Annalyn és a barátja 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 az ébren van, a lovag és az íjász pedig alszik. Ha viszont a fogoly alszik, nem lehet kimenteni: Annalyn hirtelen felbukkanása megijesztené, és felébresztené a lovagot meg az íjászt.
Készíts egy can_free_prisoner nevű függvényt, amely négy Boolean értéket kap.
Az első három paraméter rendre megmutatja, hogy a lovag, az íjász és a fogoly ébren van-e.
Az utolsó paraméter megmutatja, hogy Annalyn kutyája jelen van-e.
A függvény akkor ad vissza true értéket, ha a karakterek állapota alapján a »Fogoly kiszabadítása« művelet elérhető. Ellenkező esetben false értéket ad vissza:
julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false
julia> dog_present = false
julia> can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present)
false
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Julia nyelvet 35 fogalom128 feladat segítségével, valódi emberi mentorálással, mindez ingyen.