Tracks
/
Elixir
Elixir
/
Übungen
/
Pacman-Regeln
Pacman-Regeln

Pacman-Regeln

Lernübung

Einführung

Boolesche Werte

Elixir stellt die Werte wahr und falsch mit dem booleschen Typ dar. Es gibt nur zwei Werte: true und false. Du kannst diese Werte an eine Variable binden:

true_variable = true
false_variable = false

Mit den Operatoren and/2, or/2 und not/1 können wir strikte boolesche Ausdrücke auswerten.

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

Wenn du eine Funktion schreibst, die einen booleschen Wert zurückgibt, ist es idiomatisch, den Funktionsnamen mit einem ? zu beenden. Dieselbe Konvention kannst du für Variablen verwenden, die boolesche Werte speichern.

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

Anleitung

In dieser Übung übersetzt du einige Regeln aus dem klassischen Spiel Pac-Man in Elixir-Funktionen.

Du hast vier Regeln zu übersetzen, die alle mit den Spielzuständen zusammenhängen.

Mach dir keine Gedanken darüber, wie die Argumente zustande kommen. Konzentriere dich darauf, die Argumente so zu kombinieren, dass das gewünschte Ergebnis zurückgegeben wird.

1. Definiere, ob Pac-Man einen Geist frisst

Definiere die Funktion Rules.eat_ghost?/2, die zwei Argumente entgegennimmt (ob bei Pac-Man eine Kraftpille aktiv ist und ob Pac-Man einen Geist berührt) und einen booleschen Wert zurückgibt, der angibt, ob Pac-Man den Geist fressen kann. Die Funktion sollte nur dann wahr zurückgeben, wenn bei Pac-Man eine Kraftpille aktiv ist und er einen Geist berührt.

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

2. Definiere, ob Pac-Man punktet

Definiere die Funktion Rules.score?/2, die zwei Argumente entgegennimmt (ob Pac-Man eine Kraftpille berührt und ob Pac-Man einen Punkt berührt) und einen booleschen Wert zurückgibt, der angibt, ob Pac-Man gepunktet hat. Die Funktion sollte wahr zurückgeben, wenn Pac-Man eine Kraftpille oder einen Punkt berührt.

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

3. Definiere, ob Pac-Man verliert

Definiere die Funktion Rules.lose?/2, die zwei Argumente entgegennimmt (ob bei Pac-Man eine Kraftpille aktiv ist und ob Pac-Man einen Geist berührt) und einen booleschen Wert zurückgibt, der angibt, ob Pac-Man verliert. Die Funktion sollte wahr zurückgeben, wenn Pac-Man einen Geist berührt und keine Kraftpille aktiv ist.

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

4. Definiere, ob Pac-Man gewinnt

Definiere die Funktion Rules.win?/3, die drei Argumente entgegennimmt (ob Pac-Man alle Punkte gefressen hat, ob bei Pac-Man eine Kraftpille aktiv ist und ob Pac-Man einen Geist berührt) und einen booleschen Wert zurückgibt, der angibt, ob Pac-Man gewinnt. Die Funktion sollte wahr zurückgeben, wenn Pac-Man alle Punkte gefressen hat und gemäß den in Teil 3 definierten Argumenten nicht verloren hat.

Rules.win?(false, true, false)
# => false
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Elixir Exercism

Bereit, mit Pacman-Regeln zu starten?

Melde dich bei Exercism an, um Elixir mit 58 Konzepte168 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.