Gleam representa los valores verdadero y falso con el tipo Bool. Solo existen 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 evaluación de cortocircuito, lo que significa que la expresión del lado derecho del operador solo se evalúa si es necesario.
Cada uno de los operadores tiene una precedencia diferente, donde ! 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, necesitas 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 obtienen los argumentos, solo concéntrate en combinarlos para devolver el resultado esperado.
Define la función eat_ghost, que recibe dos argumentos (si Pac-Man tiene activa una píldora de poder y si Pac-Man está tocando un fantasma) y devuelve un valor Boolean si Pac-Man puede comerse un fantasma. La función debe devolver True solo si Pac-Man tiene activa una píldora de poder y está tocando un fantasma.
eat_ghost(False, True)
// -> False
Define la función score, que recibe dos argumentos (si Pac-Man está tocando una píldora de poder y si Pac-Man está tocando un punto) y devuelve un valor Boolean si Pac-Man anota puntos. La función debe devolver True si Pac-Man está tocando una píldora de poder o un punto.
score(True, True)
// -> True
Define la función lose, que recibe dos argumentos (si Pac-Man tiene activa una píldora de poder y si Pac-Man está tocando un fantasma) y devuelve un valor Boolean si Pac-Man pierde. La función debe devolver True si Pac-Man está tocando un fantasma y no tiene activa una píldora de poder.
lose(False, True)
// -> True
Define la función win, que recibe tres argumentos (si Pac-Man ha comido todos los puntos, si Pac-Man tiene activa una píldora de poder y si Pac-Man está tocando un fantasma) y devuelve un valor Boolean si Pac-Man gana. La función debe devolver True si Pac-Man 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.