Gleam rappresenta i valori vero e falso con il tipo Bool. Esistono solo due valori: True e False. Questi valori possono essere associati a una variabile:
let true_variable = True
let false_variable = False
Gli operatori &&, || e ! possono essere usati per manipolare i valori booleani:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
Gli operatori && e || usano la valutazione a corto circuito: l'espressione a destra dell'operatore viene valutata solo se serve.
Ogni operatore ha una precedenza diversa: ! viene valutato prima di && e ||. Le parentesi graffe possono essere usate per valutare una parte dell'espressione prima delle altre:
!True && False // -> False
!{True && False} // -> True
In questo esercizio, dovrai tradurre alcune regole del classico gioco Pac-Man in funzioni Gleam.
Hai quattro regole da tradurre, tutte legate agli stati di gioco.
Non preoccuparti di come vengono ricavati gli argomenti, concentrati solo sul combinarli per restituire il risultato desiderato.
Definisci la funzione eat_ghost che accetta due argomenti (se Pac-Man ha una pillola energetica attiva e se Pac-Man sta toccando un fantasma) e restituisce un valore booleano se Pac-Man è in grado di mangiare il fantasma. La funzione deve restituire True solo se Pac-Man ha una pillola energetica attiva e sta toccando un fantasma.
eat_ghost(False, True)
// -> False
Definisci la funzione score che accetta due argomenti (se Pac-Man sta toccando una pillola energetica e se Pac-Man sta toccando un pallino) e restituisce un valore booleano se Pac-Man ha fatto punti. La funzione deve restituire True se Pac-Man sta toccando una pillola energetica o un pallino.
score(True, True)
// -> True
Definisci la funzione lose che accetta due argomenti (se Pac-Man ha una pillola energetica attiva e se Pac-Man sta toccando un fantasma) e restituisce un valore booleano se Pac-Man perde. La funzione deve restituire True se Pac-Man sta toccando un fantasma e non ha una pillola energetica attiva.
lose(False, True)
// -> True
Definisci la funzione win che accetta tre argomenti (se Pac-Man ha mangiato tutti i pallini, se Pac-Man ha una pillola energetica attiva e se Pac-Man sta toccando un fantasma) e restituisce un valore booleano se Pac-Man vince. La funzione deve restituire True se Pac-Man ha mangiato tutti i pallini e non ha perso in base agli argomenti definiti nella parte 3.
win(False, True, False)
// -> False
Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.