Gleam representa los valores verdadero y falso con el tipo Bool. Solo hay dos valores: True y False. Estos valores se pueden asignar a una variable:
let true_variable = True
let false_variable = False
Los operadores &&, || y ! se pueden usar para manipular valores booleanos:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
Los operadores && y || usan la evaluación de cortocircuito, lo que significa que la expresión del lado derecho del operador solo se evalúa si es necesario.
Cada operador tiene una precedencia distinta: ! se evalúa antes que && y ||. Se pueden usar llaves para evaluar una parte de la expresión antes que las demás:
!True && False // -> False
!{True && False} // -> True
En este ejercicio, tienes que traducir algunas reglas del clásico juego Pac-Man a funciones de Gleam.
Tienes cuatro reglas que traducir, todas relacionadas con los estados del juego.
No te preocupes por cómo se derivan los argumentos, céntrate en combinar los argumentos para devolver el resultado esperado.
Define la función eat_ghost, que toma dos argumentos (si Pac-Man tiene activa una píldora de energía y si Pac-Man está tocando a un fantasma) y devuelve un valor Boolean que indica si Pac-Man puede comerse a un fantasma. La función debe devolver True solo si Pac-Man tiene activa una píldora de energía y está tocando a un fantasma.
eat_ghost(False, True)
// -> False
Define la función score, que toma dos argumentos (si Pac-Man está tocando una píldora de energía y si Pac-Man está tocando un punto) y devuelve un valor Boolean que indica si Pac-Man ha puntuado. La función debe devolver True si Pac-Man está tocando una píldora de energía o un punto.
score(True, True)
// -> True
Define la función lose, que toma dos argumentos (si Pac-Man tiene activa una píldora de energía y si Pac-Man está tocando a un fantasma) y devuelve un valor Boolean que indica si Pac-Man pierde. La función debe devolver True si Pac-Man está tocando a un fantasma y no tiene activa una píldora de energía.
lose(False, True)
// -> True
Define la función win, que toma tres argumentos (si Pac-Man se ha comido todos los puntos, si Pac-Man tiene activa una píldora de energía y si Pac-Man está tocando a un fantasma) y devuelve un valor Boolean que indica si Pac-Man gana. La función debe devolver True si Pac-Man se ha comido todos los puntos y no ha perdido según los argumentos definidos en la parte 3.
win(False, True, False)
// -> False
Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.