A Swift beépített Bool típust kínál az igazságértékek, a true és a false reprezentálására.
A Swift három logikai operátort (!, && és ||) kínál Boolean kifejezések kombinálására és kiértékelésére.
&&)Az és operátor (&&) csak akkor ad vissza true-t, ha mindkét operandus true.
Ha valamelyik operandus false, akkor false-t ad vissza.
A && jel mindkét oldalára tegyél egy kifejezést vagy egy Boolean értéket:
true && true // true
true && false // false
||)A vagy operátor (||) akkor ad vissza true-t, ha az operandusok közül legalább az egyik true.
Csak akkor ad vissza false-t, ha mindkét operandus false.
A || jel mindkét oldalára tegyél egy kifejezést vagy egy Boolean értéket:
true || true // true
true || false // true
false || false // false
!)A nem operátor (!) megfordítja a Boolean értéket.
true-t ad vissza, ha az érték false, és false-t, ha az érték true.
A ! operátort közvetlenül az érték vagy a kifejezés elé helyezd:
!true // false
!false // true
())A zárójelek segítségével csoportosíthatod a kifejezéseket, és szabályozhatod a kiértékelés sorrendjét. A Swiftben először a zárójelben lévő kifejezések értékelődnek ki:
true && false && false || true // true
true && false && (false || true) // false
A zárójelezés azt is meghatározza, hogyan vonatkozik a NEM operátor az összetett kifejezésekre:
!true && false // false (evaluates (!true) first, then false && false)
!(true && false) // true (evaluates (true && false) first to false, then !false)
Akkor használj zárójelet, ha tisztázni szeretnéd a kiértékelés sorrendjét, vagy egy összetett feltételt könnyebben olvashatóvá szeretnél tenni. Kerüld a felesleges zárójeleket, amikor az alapértelmezett műveleti elsőbbség egyébként is egyértelmű.
Éppen az új, nagyra becsült Wings Quest játékot fejleszted. A játékban egy madár vagy, amely ide-oda mozog, és magokat gyűjt. A játékos akkor nyer, ha felszedi az összes magot. Ha a játékos kapcsolatba kerül egy sassal, elveszíti az összes magját, és veszít. Ez alól a szabály alól van egy kivétel: a játékosnak lehet aktív power-upja, amitől magasabban repül, mint a többi madár.
A feladatod, hogy megírj néhány szabályt, amelyeket a játékban használni fognak.
A játékban a madár bónuszpontokat kap, ha úgy ér hozzá egy sashez, hogy közben aktív a power-upja.
Definiáld a bonusPoints(powerUpActive:touchingEagle:) függvényt, amely két argumentumot vár: a powerUpActive argumentum azt jelzi, hogy a madárnak aktív-e a power-upja, a touchingEagle argumentum pedig azt, hogy a madár hozzáér-e egy sashez.
A függvény csak akkor adjon vissza true értéket, ha a madárnak aktív a power-upja, és hozzáér egy sashez, egyébként false értéket.
bonusPoints(powerUpActive: false, touchingEagle: true)
// Returns false
A játékban a játékos pontot kap, amikor felvesz egy magot vagy egy power-upot.
Definiáld a score(touchingPowerUp:touchingSeed:) függvényt, amely két argumentumot vár: a touchingPowerUp argumentum azt jelzi, hogy a madár hozzáér-e egy power-uphoz, a touchingSeed argumentum pedig azt, hogy hozzáér-e egy maghoz.
A függvény akkor adjon vissza true értéket, ha a madár hozzáér egy power-uphoz vagy egy maghoz, egyébként false értéket.
score(touchingPowerUp: true, touchingSeed: true)
// Returns true
Definiáld a lose(powerUpActive:touchingEagle:) függvényt, amely két argumentumot vár: a powerUpActive argumentum azt jelzi, hogy a madárnak aktív-e a power-upja, a touchingEagle argumentum pedig azt, hogy a madár hozzáér-e egy sashez.
A függvény akkor adjon vissza true értéket, ha a szereplő hozzáér egy sashez, és nincs aktív power-upja, egyébként false értéket.
lose(powerUpActive: false, touchingEagle: true)
// Returns true
Definiáld a win(hasPickedUpAllSeeds:powerUpActive:touchingEagle:) függvényt, amely a következő argumentumokat várja:
hasPickedUpAllSeeds: hogy a madár felszedte-e az összes magot.powerUpActive: hogy a madárnak aktív-e a power-upja.touchingEagle: hogy a madár hozzáér-e egy sashez.A függvény akkor adjon vissza true értéket, ha a madár összegyűjtötte az összes magot, és a 3. részben meghatározott argumentumok alapján nem veszített, egyébként false értéket.
win(hasPickedUpAllSeeds: false, powerUpActive: true, touchingEagle: false)
// Returns false
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Swift nyelvet 35 fogalom116 feladat segítségével, valódi emberi mentorálással, mindez ingyen.