Swift fornisce un tipo integrato chiamato Bool per rappresentare i valori di verità: true e false.
Swift fornisce tre operatori logici (!, && e ||) per combinare e valutare espressioni booleane.
&&)L'operatore and (&&) restituisce true solo se entrambi gli operandi sono true.
Se uno dei due operandi è false, restituisce false.
Metti un'espressione o un valore booleano su ciascun lato del simbolo &&:
true && true // true
true && false // false
||)L'operatore or (||) restituisce true se almeno uno degli operandi è true.
Restituisce false solo quando entrambi gli operandi sono false.
Metti un'espressione o un valore booleano su ciascun lato del simbolo ||:
true || true // true
true || false // true
false || false // false
!)L'operatore not (!) inverte un valore booleano.
Restituisce true se il valore è false, false se il valore è true.
Metti l'operatore ! subito prima del valore o dell'espressione:
!true // false
!false // true
())Puoi usare le parentesi tonde per raggruppare le espressioni e controllare l'ordine di valutazione. In Swift, le espressioni tra parentesi vengono valutate per prime:
true && false && false || true // true
true && false && (false || true) // false
Raggruppare con le parentesi determina anche come l'operatore NOT si applica a espressioni complesse:
!true && false // false (evaluates (!true) first, then false && false)
!(true && false) // true (evaluates (true && false) first to false, then !false)
Usa le parentesi quando devi chiarire l'ordine di valutazione o rendere più leggibili le condizioni complesse. Evita di aggiungere parentesi non necessarie quando la precedenza predefinita è già chiara.
Stai sviluppando il nuovo gioco di grande successo Wings Quest. Nel gioco sei un uccello che si muove e raccoglie semi. Il giocatore vince raccogliendo tutti i semi. Se il giocatore entra in contatto con un'aquila, perde tutti i suoi semi e perde la partita. C'è un'eccezione a questa regola: il giocatore può avere un power-up attivo che lo fa volare più in alto degli altri uccelli.
Il tuo obiettivo è scrivere alcune regole che verranno usate nel gioco.
Nel gioco, l'uccello ottiene punti bonus se tocca un'aquila mentre ha un power-up.
Definisci la funzione bonusPoints(powerUpActive:touchingEagle:) che prende due argomenti: powerUpActive, che indica se l'uccello ha un power-up attivo, e l'argomento touchingEagle, che indica se l'uccello sta toccando un'aquila.
La funzione deve restituire true solo se l'uccello ha un power-up attivo e sta toccando un'aquila, e false in caso contrario.
bonusPoints(powerUpActive: false, touchingEagle: true)
// Returns false
Nel gioco, il giocatore ottiene punti quando raccoglie un seme o un power-up.
Definisci la funzione score(touchingPowerUp:touchingSeed:) che prende due argomenti: touchingPowerUp, che indica se l'uccello sta toccando un power-up, e l'argomento touchingSeed, che indica se l'uccello sta toccando un seme.
La funzione deve restituire true se l'uccello sta toccando un power-up o un seme, e restituire false in caso contrario.
score(touchingPowerUp: true, touchingSeed: true)
// Returns true
Definisci la funzione lose(powerUpActive:touchingEagle:) che prende due argomenti: powerUpActive, che indica se l'uccello ha un power-up attivo, e l'argomento touchingEagle, che indica se l'uccello sta toccando un'aquila.
La funzione deve restituire true se il personaggio sta toccando un'aquila e non ha un power-up attivo, e restituire false in caso contrario.
lose(powerUpActive: false, touchingEagle: true)
// Returns true
Definisci la funzione win(hasPickedUpAllSeeds:powerUpActive:touchingEagle:) che prende gli argomenti:
hasPickedUpAllSeeds se l'uccello ha raccolto tutti i semi.powerUpActive se l'uccello ha un power-up attivo.touchingEagle se l'uccello sta toccando un'aquila.La funzione deve restituire true se l'uccello ha raccolto tutti i semi e non ha perso in base agli argomenti definiti nella parte 3, e restituire false in caso contrario.
win(hasPickedUpAllSeeds: false, powerUpActive: true, touchingEagle: false)
// Returns false
Iscriviti a Exercism per imparare e padroneggiare Swift con 35 concetti116 esercizi e il mentoring di persone reali, tutto gratis.