Projekt:2019/RoverArena: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 6: | Zeile 6: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Getter | |+Getter und Setter der Objektvariablen | ||
|- | |- | ||
!Name || Beschreibung | !Name || Beschreibung |
Version vom 28. November 2019, 21:52 Uhr
Die russische Raumfahrtbehörde Roskosmos hat ihren eigenen Rover auf den Mars geschickt. Nicht nur das Elon Musk hat seine Firma Space X angewiesen, mehrere autonome Fahrzeuge in Richtung des roten Planeten zu schicken. Und wo Elon ist, da sind Jeff Bezos und Tim Cook nicht weit. Alle Rover haben ein Ziel: Möglichst viel Wasser auf dem Mars zu finden und die enthaltenen Mineralien auszufiltern. Wer die größte Beute mit nach Hause bringt hat dieses "Spacerace" gewonnen.
Im Greenfoot-Szenario RoverArena sollt ihr einen möglichst autonomen Mars-Rover programmieren, der möglichst viele Gesteine analysiert und das enthaltene Wasser in Mineralien umwandelt. Doch jeder Rover hat nur einen begrenzte Batterie und jede Aktion auf dem Mars kostet wertvolle Energie. Daher gilt es zu entscheiden, wieviel von dem Wasser in Mineralien, und wieviel in Energie konvertiert werden soll.
Die Rover in der RoverArena beherrschen die gewohnten Anfragen und Aufträge. Dazu haben sie schon einiges neues gelernt:
Name | Beschreibung |
---|---|
getWasser()
|
Die Menge an Wasser im Wassertank. Wasser muss zuerst mit analysiereGestein() gesammelt werden und kann dann mit konvertiereWasser(String produkt) in Mineralien oder Energie konvertiert werden.
|
getEnergie()
|
Die verbleibende Energieladung in der Batterie des Rovers. Jede Aktion kostet ein wenig Energie. Ist die Batterie leer, kann der Rover nichts mehr machen. Daher sollte er versuchen vorher etwas Wasser in Energie zu konvertieren. Jeder ROver startet mit einer volen Ladung von 1000. |
getMineralien()
|
Die Menge an Mineralien, die biher konvertiert wurde. Der Rover, der am Ende die meisten Mineralien gesammlet hat, gewinnt die Runde. |
Typ | Name | Beschreibung | Energie-Kosten |
---|---|---|---|
Auftrag | void fahre()
|
Bewegt den Rover ein Feld in Blickrichtung vorwärts. | 4 |
Auftrag | void drehe( String richtung )
|
Dreht den Rover um 90 Grad nach "links" oder "rechts" .
|
2 |
Auftrag | void markeSetzen()
|
Setzt eine Marke auf dem aktuellen Feld des Rovers. Jeder Rover startet mit fünf Marken, kann aber Marken (auch von anderen Rovern) aufsammeln und diese neu setzen. | 1 |
Auftrag | void markeEntfernen()
|
Entfernt eine Marke, wenn eine vorhanden ist und der Laderaum des Rovers noch nicht voll ist. Jeder Rover kann maximal 8 Marken tragen. | 1 |
Anfrage | boolean markeVorhanden()
|
Prüft, ob auf dem aktuellen Feld eine Marke vorhanden ist. | 0 |
Anfrage | boolean eigeneMarkeVorhanden()
|
Prüft, ob auf dem aktuellen Feld eine Marke vorhanden ist, die der Rover selber gesetzt hat. | 0 |
Anfrage | boolean huegelVorhanden( String richtung )
|
Prüft, ob "vorne" , "rechts" oder "links" von der Position des Rovers ein Hügel befindet.
|
0 |
Anfrage | boolean gesteinVorhanden()
|
Prüft, ob auf dem aktuellen Feld ein Gestein vorhanden ist. | 0 |
Auftrag | void analysiereGestein()
|
0 | |
Anfrage | void konvertiereWasser( String produkt )
|
0 | |
Anfrage | boolean roverVorhanden( String richtung )
|
0 | |
Anfrage | boolean enzieheEnergie()
|
Entzieht eionem anderen Rover Energie, wenn sich dieser auf dem Feld vor dem Rover befindet. | -10 |