Track
/
Elixir
Elixir
/
Esercizi
/
Le regole di Pacman
Le regole di Pacman

Le regole di Pacman

Esercizio di apprendimento

Introduzione

Booleani

Elixir rappresenta i valori vero e falso con il tipo booleano. Esistono solo due valori: true e false. Questi valori possono essere assegnati a una variabile:

true_variable = true
false_variable = false

Possiamo valutare espressioni booleane rigorose usando gli operatori 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 scriviamo una funzione che restituisce un valore booleano, è idiomatico terminare il nome della funzione con un ?. La stessa convenzione si può usare per le variabili che memorizzano valori booleani.

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

Istruzioni

In questo esercizio, tradurrai alcune regole del classico gioco Pac-Man in funzioni Elixir.

Hai quattro regole da tradurre, tutte legate agli stati del gioco.

Non preoccuparti di come vengono ricavati gli argomenti: concentrati solo sul combinarli per restituire il risultato voluto.

1. Definisci se Pac-Man mangia un fantasma

Definisci la funzione Rules.eat_ghost?/2 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 che indica se Pac-Man è in grado di mangiare il fantasma. La funzione dovrebbe restituire true solo se Pac-Man ha una pillola energetica attiva e sta toccando un fantasma.

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

2. Definisci se Pac-Man segna

Definisci la funzione Rules.score?/2 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 che indica se Pac-Man ha segnato. La funzione dovrebbe restituire true se Pac-Man sta toccando una pillola energetica o un pallino.

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

3. Definisci se Pac-Man perde

Definisci la funzione Rules.lose?/2 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 che indica se Pac-Man perde. La funzione dovrebbe restituire true se Pac-Man sta toccando un fantasma e non ha una pillola energetica attiva.

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

4. Definisci se Pac-Man vince

Definisci la funzione Rules.win?/3 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 che indica se Pac-Man vince. La funzione dovrebbe restituire true se Pac-Man ha mangiato tutti i pallini e non ha perso in base agli argomenti definiti nella parte 3.

Rules.win?(false, true, false)
# => false
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Elixir Exercism

Vuoi iniziare Le regole di Pacman?

Iscriviti a Exercism per imparare e padroneggiare Elixir con 58 concetti168 esercizi e il mentoring di persone reali, tutto gratis.