Tracks
/
Gleam
Gleam
/
Übungen
/
Pacman-Regeln
Pacman-Regeln

Pacman-Regeln

Lernübung

Einführung

Boolesche Werte

Gleam stellt wahre und falsche Werte mit dem Typ Bool dar. Es gibt nur zwei Werte: True und False. Diese Werte kannst du an eine Variable binden:

let true_variable = True
let false_variable = False

Mit den Operatoren &&, || und ! kannst du boolesche Werte manipulieren:

True && True  // -> True
True && False // -> False

False || True  // -> True
False || False // -> False

!False // -> True
!True  // -> False

Die Operatoren && und || verwenden die Kurzschlussauswertung. Das bedeutet, dass Gleam den Ausdruck auf der rechten Seite des Operators nur auswertet, wenn es nötig ist.

Die Operatoren haben unterschiedliche Prioritäten: Gleam wertet ! vor && und || aus. Mit geschweiften Klammern kannst du einen Teil des Ausdrucks vor den anderen auswerten:

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

Anleitung

In dieser Übung übersetzt du einige Regeln aus dem klassischen Spiel Pac-Man in Gleam-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 einfach 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 eat_ghost, die zwei Argumente entgegennimmt (ob Pac-Man eine aktive Kraftpille hat und ob Pac-Man einen Geist berührt) und einen booleschen Wert dafür zurückgibt, ob Pac-Man den Geist fressen kann. Die Funktion sollte nur dann True zurückgeben, wenn Pac-Man eine aktive Kraftpille hat und einen Geist berührt.

eat_ghost(False, True)
// -> False

2. Definiere, ob Pac-Man punktet

Definiere die Funktion score, die zwei Argumente entgegennimmt (ob Pac-Man eine Kraftpille berührt und ob Pac-Man einen Punkt berührt) und einen booleschen Wert dafür zurückgibt, ob Pac-Man punktet. Die Funktion sollte True zurückgeben, wenn Pac-Man eine Kraftpille oder einen Punkt berührt.

score(True, True)
// -> True

3. Definiere, ob Pac-Man verliert

Definiere die Funktion lose, die zwei Argumente entgegennimmt (ob Pac-Man eine aktive Kraftpille hat und ob Pac-Man einen Geist berührt) und einen booleschen Wert dafür zurückgibt, ob Pac-Man verliert. Die Funktion sollte True zurückgeben, wenn Pac-Man einen Geist berührt und keine aktive Kraftpille hat.

lose(False, True)
// -> True

4. Definiere, ob Pac-Man gewinnt

Definiere die Funktion win, die drei Argumente entgegennimmt (ob Pac-Man alle Punkte gefressen hat, ob Pac-Man eine aktive Kraftpille hat und ob Pac-Man einen Geist berührt) und einen booleschen Wert dafür zurückgibt, ob Pac-Man gewinnt. Die Funktion sollte True zurückgeben, wenn Pac-Man alle Punkte gefressen hat und aufgrund der in Teil 3 definierten Argumente nicht verloren hat.

win(False, True, False)
// -> False
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Gleam Exercism

Bereit, mit Pacman-Regeln zu starten?

Melde dich bei Exercism an, um Gleam mit 33 Konzepte122 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.