Swift incluye un tipo incorporado llamado Bool para representar valores de verdad (booleanos): true y false.
Swift incluye tres operadores lógicos (!, && y ||) para combinar y evaluar expresiones Boolean.
&&)El operador and (&&) devuelve true solo si ambos operandos son true.
Si cualquiera de los operandos es false, devuelve false.
Coloca una expresión o un valor Boolean a cada lado del símbolo &&:
true && true // true
true && false // false
||)El operador or (||) devuelve true si al menos uno de los operandos es true.
Solo devuelve false cuando ambos operandos son false.
Coloca una expresión o un valor Boolean a cada lado del símbolo ||:
true || true // true
true || false // true
false || false // false
!)El operador not (!) invierte un valor Boolean.
Devuelve true si el valor es false, y false si el valor es true.
Coloca el operador ! justo antes del valor o de la expresión:
!true // false
!false // true
())Puedes usar paréntesis para agrupar expresiones y controlar el orden de evaluación. En Swift, las expresiones que están dentro de los paréntesis se evalúan primero:
true && false && false || true // true
true && false && (false || true) // false
Agrupar con paréntesis también determina cómo se aplica el operador NOT a las expresiones complejas:
!true && false // false (evaluates (!true) first, then false && false)
!(true && false) // true (evaluates (true && false) first to false, then !false)
Usa paréntesis cuando necesites aclarar el orden de evaluación o hacer más fáciles de leer las condiciones complejas. Evita agregar paréntesis innecesarios cuando la precedencia predeterminada ya es clara.
Estás en proceso de desarrollar el nuevo y muy apreciado juego Wings Quest. En el juego eres un pájaro que se mueve de un lado a otro y recoge semillas. El jugador gana al recoger todas las semillas. Si el jugador entra en contacto con un águila, perderá todas sus semillas y perderá el juego. Hay una excepción a esta regla: el jugador puede tener un potenciador activo que lo hace volar más alto que los demás pájaros.
Tu objetivo es escribir algunas reglas que se usarán en el juego.
En el juego, el pájaro obtiene puntos extra si toca un águila mientras tiene un potenciador.
Define la función bonusPoints(powerUpActive:touchingEagle:), que toma dos argumentos: powerUpActive, que indica si el pájaro tiene un potenciador activo, y el argumento touchingEagle, que indica si el pájaro está tocando un águila.
La función debe devolver true solo si el pájaro tiene un potenciador activo y está tocando un águila, y false en caso contrario.
bonusPoints(powerUpActive: false, touchingEagle: true)
// Returns false
En el juego, el jugador obtiene puntos al recoger una semilla o un potenciador.
Define la función score(touchingPowerUp:touchingSeed:), que toma dos argumentos: touchingPowerUp, que indica si el pájaro está tocando un potenciador, y el argumento touchingSeed, que indica si el pájaro está tocando una semilla.
La función debe devolver true si el pájaro está tocando un potenciador o una semilla, y devolver false en caso contrario.
score(touchingPowerUp: true, touchingSeed: true)
// Returns true
Define la función lose(powerUpActive:touchingEagle:), que toma dos argumentos: powerUpActive, que indica si el pájaro tiene un potenciador activo, y el argumento touchingEagle, que indica si el pájaro está tocando un águila.
La función debe devolver true si el pájaro está tocando un águila y no tiene un potenciador activo, y devolver false en caso contrario.
lose(powerUpActive: false, touchingEagle: true)
// Returns true
Define la función win(hasPickedUpAllSeeds:powerUpActive:touchingEagle:), que toma los argumentos:
hasPickedUpAllSeeds si el pájaro ha recogido todas las semillas.powerUpActive si el pájaro tiene un potenciador activo.touchingEagle si el pájaro está tocando un águila.La función debe devolver true si el pájaro ha reunido todas las semillas y no ha perdido según los argumentos definidos en la parte 3, y devolver false en caso contrario.
win(hasPickedUpAllSeeds: false, powerUpActive: true, touchingEagle: false)
// Returns false
Regístrate en Exercism para aprender y dominar Swift con 35 conceptos116 ejercicios y mentoría humana real, todo gratis.