Tracks
/
Elixir
Elixir
/
Ejercicios
/
Reglas de Pacman
Reglas de Pacman

Reglas de Pacman

Ejercicio de aprendizaje

Introducción

Boolean

Elixir representa los valores verdadero y falso con el tipo booleano. Solo hay dos valores: true y false. Estos valores se pueden vincular a una variable:

true_variable = true
false_variable = false

Podemos evaluar expresiones Boolean estrictas usando los operadores and/2, or/2 y not/1.

true_variable = true and true
false_variable = true and false

true_variable = false or true
false_variable = false or false

true_variable = not false
false_variable = not true

Cuando escribes una función que devuelve un valor Boolean, lo idiomático es terminar el nombre de la función con un ?. La misma convención se puede usar para variables que almacenan valores Boolean.

def either_true?(a?, b?) do
  a? or b?
end

Instrucciones

En este ejercicio, tienes que traducir algunas reglas del clásico juego Pac-Man a funciones de Elixir.

Tienes cuatro reglas que traducir, todas relacionadas con los estados del juego.

No te preocupes por cómo se derivan los argumentos; simplemente concéntrate en combinarlos para devolver el resultado esperado.

1. Define si Pac-Man se come un fantasma

Define la función Rules.eat_ghost?/2, que recibe dos argumentos (si Pac-Man tiene una píldora de poder activa y si Pac-Man está tocando un fantasma) y devuelve un valor de tipo Boolean si Pac-Man puede comerse al fantasma. La función debe devolver true solo si Pac-Man tiene una píldora de poder activa y está tocando un fantasma.

Rules.eat_ghost?(false, true)
# => false

2. Define si Pac-Man anota

Define la función Rules.score?/2, 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 de tipo Boolean si Pac-Man anota. La función debe devolver true si Pac-Man está tocando una píldora de poder o un punto.

Rules.score?(true, true)
# => true

3. Define si Pac-Man pierde

Define la función Rules.lose?/2, que recibe dos argumentos (si Pac-Man tiene una píldora de poder activa y si Pac-Man está tocando un fantasma) y devuelve un valor de tipo Boolean si Pac-Man pierde. La función debe devolver true si Pac-Man está tocando un fantasma y no tiene una píldora de poder activa.

Rules.lose?(false, true)
# => true

4. Define si Pac-Man gana

Define la función Rules.win?/3, que recibe tres argumentos (si Pac-Man se ha comido todos los puntos, si Pac-Man tiene una píldora de poder activa y si Pac-Man está tocando un fantasma) y devuelve un valor de tipo Boolean 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.

Rules.win?(false, true, false)
# => false
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Elixir Exercism

¿Todo listo para empezar Reglas de Pacman?

Regístrate en Exercism para aprender y dominar Elixir con 58 conceptos168 ejercicios y mentoría humana real, todo gratis.