Übungen: Records
Aufgabe 1: Punkte im Koordinatensystem
Ein Punkt in einem 2-dimensionalen kartesischen Koordinatensystem lässt sich über
seine x- und y-Koordinaten definieren.
(a) Schreibe eine Record-Definition für einen 2-dimensionalen Punkt.
(b) Schreibe eine Funktion, die den Abstand zweier Punkte berechnet.
(c) Schreibe eine Funktion, die den Abstand eines Punktes zum Ursprung berechnet.
(d) Schreibe eine Funktion, die einen Punkt an der übergebenen Achse spiegelt.
(e) Setzte die Aufgaben (a) bis (d) für einen 3-dimensionalen-Punkt um.
Aufgabe 2: Tuxemon
Im Spiel Tuxemon kann man Kreaturen verschiedener Typen sammeln und gegeneinander antreten lassen. Einen einfachen solchen Kampf möchten wir hier implementieren.
(a) Im unteren Bild siehst du drei Tuxemons sowie deren Namen. Die Tuxemons haben von links nach rechts die
Typen: Feuer, Wasser und Gras. Implementiere einen geeigneten Record, um die Tuxemons abzubilden.
Je nach Typ sind die Tuxemon unterschiedlich effektiv gegeneinander.
In der unteren Abbildung siehst du eine Tabelle, die dir anzeigt, gegen welchen anderen Typ ein
Typ besonders effektiv (grün), neutral (grau) oder ineffektiv (rot) ist.
(b) Schreibe eine Funktion, die für zwei Tuxemons überprüft, welcher als Gewinner hervorgeht.
Bei einem Unentschieden soll ein Dummy-Tuxemon ohne Namen und Typ zurückgegeben werden.
Neben dem Typ besitzt jedes Tuxemon auch ein Level (1 bis 100). Beim Duell zweier Tuxemons kommt es also nicht
nur auf den Typ, sondern auch auf das Level der Tuxemons an. Dabei gelten für unsere Implementierung
die folgenden Regeln:
- Sind zwei Tuxemons vom selben Typ, gewinnt das Tuxemon mit dem höheren Level.
- Sind zwei Tuxemons von unterschiedlichem Typ und unterscheiden sich um weniger als 10 Level, gewinnt das Tuxemon, dessen Typ gemäß obiger Tabelle effektiv gegen den Gegner ist.
- Sind zwei Tuxemons von unterschiedlichem Typ und unterscheiden sich um mindestens 10 Level, gewinnt das Tuxemon mit höherem Level.
(c) Ergänze den Tuxemon-Record aus Aufgabenteil (a) und die Funktion aus Aufgabenteil (b) um die beschriebenen Eigenschaften.