Trilhas
/
Elixir
Elixir
/
Exercícios
/
Regras do Pacman
Regras do Pacman

Regras do Pacman

Exercício de aprendizagem

Introdução

Booleanos

Elixir representa os valores verdadeiro e falso com o tipo booleano. Existem apenas dois valores: true e false. Esses valores podem ser atribuídos a uma variável:

true_variable = true
false_variable = false

Podemos avaliar expressões booleanas estritas usando os operadores and/2, or/2 e 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

Quando você escreve uma função que retorna um valor booleano, é idiomático terminar o nome da função com um ?. A mesma convenção pode ser usada em variáveis que guardam valores booleanos.

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

Instruções

Neste exercício, você precisa traduzir algumas regras do clássico jogo Pac-Man para funções de Elixir.

Você tem quatro regras para traduzir, todas relacionadas aos estados do jogo.

Não se preocupe com a forma como os argumentos são obtidos, apenas foque em combinar os argumentos para retornar o resultado esperado.

1. Defina se o Pac-Man come um fantasma

Defina a função Rules.eat_ghost?/2, que recebe dois argumentos (se o Pac-Man tem uma pastilha de poder ativa e se o Pac-Man está encostando em um fantasma) e retorna um valor Boolean indicando se o Pac-Man consegue comer o fantasma. A função deve retornar true apenas se o Pac-Man tiver uma pastilha de poder ativa e estiver encostando em um fantasma.

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

2. Defina se o Pac-Man pontua

Defina a função Rules.score?/2, que recebe dois argumentos (se o Pac-Man está encostando em uma pastilha de poder e se o Pac-Man está encostando em uma pastilha) e retorna um valor Boolean indicando se o Pac-Man pontuou. A função deve retornar true se o Pac-Man estiver encostando em uma pastilha de poder ou em uma pastilha.

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

3. Defina se o Pac-Man perde

Defina a função Rules.lose?/2, que recebe dois argumentos (se o Pac-Man tem uma pastilha de poder ativa e se o Pac-Man está encostando em um fantasma) e retorna um valor Boolean indicando se o Pac-Man perdeu. A função deve retornar true se o Pac-Man estiver encostando em um fantasma e não tiver uma pastilha de poder ativa.

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

4. Defina se o Pac-Man vence

Defina a função Rules.win?/3, que recebe três argumentos (se o Pac-Man comeu todas as pastilhas, se o Pac-Man tem uma pastilha de poder ativa e se o Pac-Man está encostando em um fantasma) e retorna um valor Boolean indicando se o Pac-Man venceu. A função deve retornar true se o Pac-Man tiver comido todas as pastilhas e não tiver perdido com base nos argumentos definidos na parte 3.

Rules.win?(false, true, false)
# => false
Editar via GitHub O link abre em uma nova janela ou aba
Elixir Exercism

Tudo pronto para começar Regras do Pacman?

Crie sua conta no Exercism para aprender e dominar Elixir com 58 conceitos168 exercícios e mentoria humana de verdade, tudo de graça.