Projekt:2022/RoboRally: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 18: Zeile 18:
* [https://git.ngb.schule/IF-LK-2022/RoboRally Gitea-Repository]
* [https://git.ngb.schule/IF-LK-2022/RoboRally Gitea-Repository]
* [https://board.ngb.schule/project/changeCurrentProject/7 Scrum-Board und Issue-Tracker]
* [https://board.ngb.schule/project/changeCurrentProject/7 Scrum-Board und Issue-Tracker]
* [https://zeichenmaschine.xyz/docs JavaDoc der Zeichenmaschine]
** [https://zeichenmaschine.xyz/docs/schule/ngb/zm/layers/DrawingLayer.html JavaDoc der Zeichenebene]
{{Info:Start}}
=== Hinweise zur Zeichenmaschine ===
* Die Hauptklasse <code>RoboRally</code> erweitert die Klasse [https://zeichenmaschine.xyz/docs/schule/ngb/zm/Zeichenmaschine.html 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 [https://zeichenmaschine.xyz/docs/schule/ngb/zm/layers/DrawingLayer.html DrawingLayer] verwendet. Sie bietet diverse Methoden zum Zeichnen von Formen an.
* Ein Objekt der Klasse <code>DrawingLayer</code> wird an die <code>draw</code> Methoden der verschiedenen Klassen (z.B. <code>Tile</code>) als Parameter <code>drawing</code> übergeben. (Siehe Beispiele in den vorhandenen Unterklassen von <code>Tile</code>.)
* Die meisten Klassen erben von der Oberklasse [https://zeichenmaschine.xyz/docs/schule/ngb/zm/Constants.html Constants], die eine Reihe an Hilfsmethoden zur Verfügung stellt. Diese reichen von Zufallszahlen (<code>random(int, int)</code>), über mathematische Funktionen (<code>sin(double)</code>) bis zu Abstandsberechnungen (<code>distance(double, double, double, double)</code>). So können die Methoden in den Unterklassen einfach verwendet werden.
* Die Klasse <code>Constants</code> besitzt auch eine Menge konstanter Werte und einige Variablen, die global im laufenden Programm gelten. Dazu gehören Konstanten für Farben (<code>BLUE</code>, <code>RED</code>, ...) und z.B. die Größe der Zeichenfläche (<code>canvasWidth</code>, <code>canvasHeight</code>).
{{Info:End}}


== Aufgaben Erweiterungsphase ==
== Aufgaben Erweiterungsphase ==
Zeile 26: Zeile 38:


# 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.
# 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 [https://board.ngb.schule/project/changeCurrentProject/7 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 Karte im [https://board.ngb.schule/project/changeCurrentProject/7 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 <code>Tile</code> im Paket <code>tiles</code>. Implementiere sie nach Deiner Idee und teste sie ausgiebig.
# Erstelle eine neue Unterklasse der Klasse <code>Tile</code> im Paket <code>tiles</code>. Implementiere sie nach Deiner Idee und teste sie ausgiebig.