Projekt:2022/RoboRally

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:

  1. Analyse eines bestehenden Prototyps und Einarbeitung in Methoden der Softwaretechnik.
  2. Fertigstellung des Prototyps.
  3. Erweiterung des Prototyps um fehlende Funktionen.
  4. 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 die draw Methoden der verschiedenen Klassen (z.B. Tile) als Parameter drawing übergeben. (Siehe Beispiele in den vorhandenen Unterklassen von Tile.)
  • 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

 
Arbeitsauftrag

Eine neue Kachel implementieren

Entwickele eine neue Kachel für die Karte und integriere sie in das Spiel.

  1. 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.
  2. 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.)
  3. Erstelle eine neue Unterklasse der Klasse Tile im Paket tiles. 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.

  1. 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.
  2. 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.
  3. Erstelle eine neue Unterklasse der Klasse Effect im Paket effects. Implementiere sie nach Deiner Idee und teste sie ausgiebig.