Percursos
/
Gleam
Gleam
/
Exercícios
/
Regras do Pacman
Regras do Pacman

Regras do Pacman

Exercício de aprendizagem

Introdução

Boolean

O Gleam representa os valores verdadeiro e falso com o tipo Bool. Existem apenas dois valores: True e False. Estes 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. Ou seja, a expressão do lado direito do operador só é avaliada se for necessário.

Cada um dos operadores tem uma precedência diferente: o ! é avaliado antes de && e ||. As chavetas podem ser usadas para avaliar uma parte da expressão antes das outras:

!True && False   // -> False
!{True && False} // -> True

Instruções

Neste exercício, tens de traduzir algumas regras do clássico jogo Pac-Man para funções em Gleam.

Tens quatro regras para traduzir, todas relacionadas com os estados do jogo.

Não te preocupes com a forma como os argumentos são obtidos, concentra-te apenas em combinar os argumentos para devolveres o resultado pretendido.

1. Define se o Pac-Man come um fantasma

Define a função eat_ghost que recebe dois argumentos (se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man consegue comer o fantasma. A função só deve devolver True se o Pac-Man tiver uma pastilha de energia ativa e estiver a tocar num fantasma.

eat_ghost(False, True)
// -> False

2. Define se o Pac-Man marca pontos

Define a função score que recebe dois argumentos (se o Pac-Man está a tocar numa pastilha de energia e se o Pac-Man está a tocar num ponto) e devolve um valor Boolean se o Pac-Man marcou pontos. A função deve devolver True se o Pac-Man estiver a tocar numa pastilha de energia ou num ponto.

score(True, True)
// -> True

3. Define se o Pac-Man perde

Define a função lose que recebe dois argumentos (se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man perde. A função deve devolver True se o Pac-Man estiver a tocar num fantasma e não tiver uma pastilha de energia ativa.

lose(False, True)
// -> True

4. Define se o Pac-Man ganha

Define a função win que recebe três argumentos (se o Pac-Man comeu todos os pontos, se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man ganha. A função deve devolver True se o Pac-Man comeu todos os pontos e não perdeu com base nos argumentos definidos na parte 3.

win(False, True, False)
// -> False
Editar via GitHub A ligação abre numa nova janela ou separador
Gleam Exercism

Estás pronto para começar Regras do Pacman?

Inscreve-te no Exercism para aprenderes e dominares Gleam com 33 conceitos122 exercícios, e mentoria humana real, tudo grátis.