O Gleam representa valores verdadeiro e falso com o tipo Bool. Existem apenas dois valores: True e False. Esses valores podem ser associados a uma variável:
let true_variable = True
let false_variable = False
Os operadores &&, || e ! podem ser usados para manipular valores Boolean:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
Os operadores && e || usam avaliação de curto-circuito. Isso significa que a expressão do lado direito do operador só é avaliada quando necessário.
Cada operador tem uma precedência diferente: ! é avaliado antes de && e ||. As chaves podem ser usadas para avaliar uma parte da expressão antes das outras:
!True && False // -> False
!{True && False} // -> True
Neste exercício, você precisa traduzir algumas regras do clássico Pac-Man para funções em Gleam.
Você tem quatro regras para traduzir, todas relacionadas aos estados do jogo.
Não se preocupe em como os argumentos são obtidos, apenas foque em combinar os argumentos para retornar o resultado esperado.
Defina a função eat_ghost, que recebe dois argumentos (se o Pac-Man está com uma pílula de poder ativa e se o Pac-Man está tocando um fantasma) e retorna um valor Boolean se o Pac-Man consegue comer o fantasma. A função deve retornar True apenas se o Pac-Man estiver com uma pílula de poder ativa e estiver tocando um fantasma.
eat_ghost(False, True)
// -> False
Defina a função score, que recebe dois argumentos (se o Pac-Man está tocando uma pílula de poder e se o Pac-Man está tocando um ponto) e retorna um valor Boolean se o Pac-Man marcou pontos. A função deve retornar True se o Pac-Man estiver tocando uma pílula de poder ou um ponto.
score(True, True)
// -> True
Defina a função lose, que recebe dois argumentos (se o Pac-Man está com uma pílula de poder ativa e se o Pac-Man está tocando um fantasma) e retorna um valor Boolean se o Pac-Man perde. A função deve retornar True se o Pac-Man estiver tocando um fantasma e não estiver com uma pílula de poder ativa.
lose(False, True)
// -> True
Defina a função win, que recebe três argumentos (se o Pac-Man comeu todos os pontos, se o Pac-Man está com uma pílula de poder ativa e se o Pac-Man está tocando um fantasma) e retorna um valor Boolean se o Pac-Man vence. A função deve retornar True se o Pac-Man comeu todos os pontos e não perdeu, de acordo com os argumentos definidos na parte 3.
win(False, True, False)
// -> False
Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.