A Go-ban a Boolean értékeket az előre deklarált Boolean típus, a bool képviseli, amelynek értéke true vagy false lehet. Ez egy definiált típus.
var closed bool // boolean variable 'closed' implicitly initialized with 'false'
speeding := true // boolean variable 'speeding' initialized with 'true'
hasError := false // boolean variable 'hasError' initialized with 'false'
A Go három logikai operátort támogat, amelyekkel a kifejezéseket Boolean értékekre lehet kiértékelni, és true vagy false értéket adnak vissza.
| Operátor | Mit jelent |
|---|---|
&& (és) |
Akkor igaz, ha mindkét állítás igaz. |
|| (vagy) |
Akkor igaz, ha legalább az egyik állítás igaz. |
! (nem) |
Csak akkor igaz, ha az állítás hamis. |
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 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átalál 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 mérlegeli, hogy az alábbi cselekvések közül melyiket hajthatja végre:
Négy részfeladatod van: megvalósítani a logikát, amely meghatározza, hogy a fenti cselekvések elvégezhetők-e az erdőben talált három szereplő állapota, valamint annak alapján, hogy Annalyn kutyája jelen van-e vagy sem.
Definiáld a CanFastAttack() függvényt, amely egy boolean értéket vár, 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.
Ellenkező esetben false-t ad vissza:
var knightIsAwake = true
fmt.Println(CanFastAttack(knightIsAwake))
// Output: false
Definiáld a CanSpy() függvényt, amely három boolean értéket vár, amelyek 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 a csoport megfigyelhető.
Ellenkező esetben false-t ad vissza:
var knightIsAwake = false
var archerIsAwake = true
var prisonerIsAwake = false
fmt.Println(CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake))
// Output: true
Definiáld a CanSignalPrisoner() függvényt, amely két boolean értéket vár, amelyek 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 küldhető jelzés a fogolynak.
Ellenkező esetben false-t ad vissza:
var archerIsAwake = false
var prisonerIsAwake = true
fmt.Println(CanSignalPrisoner(archerIsAwake, prisonerIsAwake))
// Output: true
Definiáld a CanFreePrisoner() függvényt, amely négy boolean értéket vár.
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 jelen 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.
Ellenkező esetben false-t ad vissza:
var knightIsAwake = false
var archerIsAwake = true
var prisonerIsAwake = false
var petDogIsPresent = false
fmt.Println(CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent))
// Output: false
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Go nyelvet 34 fogalom165 feladat segítségével, valódi emberi mentorálással, mindez ingyen.