Projekt:2022/RoboRally
Version vom 8. Dezember 2022, 09:02 Uhr von Ngb (Diskussion | Beiträge)
Seite zum Projekt Robo Rally des Informatik LK im Schuljahr 2022/23.
Projekt Robo Rally
In diesem Projekt entwickeln wir gemeinsam eine Version des Brettspiels "Robo Rally". Die Entwicklung wird in vier Phasen ablaufen:
- Analyse eines bestehenden Prototyps und Einarbeitung in Methoden der Softwaretechnik.
- Fertigstellung des Prototyps.
- Erweiterung des Prototyps um fehlende Funktionen.
- Freie Ausgestaltung des Programms mit weiteren Funktionen und Fehlerbehebungen.
Wichtige Links

Hinweise zur Zeichenmaschine
- Die Hauptklasse
RoboRally
erweitert die Klasse Zeichenmaschine, die für die Ausführung des Programms zuständig ist und das Programmfenster verwaltet. - Zum Zeichnen auf die Zeichenfläche wird die Klasse DrawingLayer verwendet. Sie bietet diverse Methoden zum Zeichnen von Formen an.
- Ein Objekt der Klasse
DrawingLayer
wird an diedraw
Methoden der verschiedenen Klassen (z.B.Tile
) als Parameterdrawing
übergeben. (Siehe Beispiele in den vorhandenen Unterklassen vonTile
.) - Die meisten Klassen erben von der Oberklasse Constants, die eine Reihe an Hilfsmethoden zur Verfügung stellt. Diese reichen von Zufallszahlen (
random(int, int)
), über mathematische Funktionen (sin(double)
) bis zu Abstandsberechnungen (distance(double, double, double, double)
). So können die Methoden in den Unterklassen einfach verwendet werden. - Die Klasse
Constants
besitzt auch eine Menge konstanter Werte und einige Variablen, die global im laufenden Programm gelten. Dazu gehören Konstanten für Farben (BLUE
,RED
, ...) und z.B. die Größe der Zeichenfläche (canvasWidth
,canvasHeight
).
Aufgaben Erweiterungsphase

Eine neue Kachel implementieren
Entwickele eine neue Kachel für die Karte und integriere sie in das Spiel.
- Entwirf eine Idee für eine neue Kachel für die Fabrikkarte. Überleg Dir dazu, wie die Kachel funktioniert und wie sie aussehen könnte.
- Erstelle eine Karte im Scrum-Board, die Deine Kachel beschreibt. Stelle als Meilenstein "III. Erweiterung" ein und weise sie Dir selber als Bearbeiter:in zu. (Prüfe auch, ob ein ähnlicher Effekt schon von jemand anderem implementiert wird und tausche Dich ggf. darüber aus. Beschreibe deinen Effekt so präzise, dass die anderen ihn nachvollziehen können.)
- Erstelle eine neue Unterklasse der Klasse
Tile
im Pakettiles
. Implementiere sie nach Deiner Idee und teste sie ausgiebig.
Nicht jede Kachel muss eine aufwendige Aktion haben. Du kannst Dich an den Kacheln des Brettspiels orientieren, oder Dir eine eigene Idee überlegen. Zur Inspiration kannst Du auch in die Zusatzmaterialien schauen.
Deine Kachel kann auch mit einem Effekt verknüpft sein. Zum Beispiel könnte ein Roboter auf dem Feld einen Effekt bekommen oder es wird ein Effekt "geheilt".
Einen neuen Effekt implementieren
Entwickele einen neuen Effekt und integriere ihn in das Spiel.
- Entwirf eine Idee für einen neuen Effekt, der in das Spiel passt. Überleg Dir dazu, was der Effekt für einen Effekt (!) hat, wenn er angewandt wird und auch, wie ein Roboter diesen Effekt bekommen kann.
- Erstelle eine Karte im Scrum-Board, die Deinen Effekt beschreibt. Stelle als Meilenstein "III. Erweiterung" ein und weise sie Dir selber als Bearbeiter:in zu.
- Erstelle eine neue Unterklasse der Klasse
Effect
im Paketeffects
. Implementiere sie nach Deiner Idee und teste sie ausgiebig.