Projekt:2019/RoverArena: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 99: Zeile 99:
Dann solltet ihr euren Rover einen eigenen Namen geben. Dieser kann sich vom Bezeichner der Klasse unterscheiden. Ändert dazu in der Methode <code>roverErstellen()</code> den String in der Zeile
Dann solltet ihr euren Rover einen eigenen Namen geben. Dieser kann sich vom Bezeichner der Klasse unterscheiden. Ändert dazu in der Methode <code>roverErstellen()</code> den String in der Zeile
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
name = "Mark Wattney";
name = "Mark Watney";
</syntaxhighlight>
</syntaxhighlight>
auf etwas eigenes um.
auf etwas eigenes um.
Zeile 118: Zeile 118:
}
}
</syntaxhighlight>
</syntaxhighlight>
== Den Rover programmieren ==
Ihr programmiert das Verhalten eures Rovers in der <code>act()</code>-Methode. Wie ihr das macht, das ist euch überlassen, solange die Regeln oben eingehalten werden. Im Spiel gibt es einen Siedsrichter (Klasse <code>Referee</code>), der darauf aufpasst, dass euer Rover nicht mogelt.
Ein Beispiel für einen Rover findet ihr in der Klasse <code>BoringRover</code>. Das Verhalten des dieses Rovers ist recht ... langweilig. Aber immerhin bewegt er sich und führt Aktionen aus. Es ist aber leicht möglich, einen deutlich effizienteren Rover zu erstellen.
Oftmals ist es sinnvoll, den Rover Aktionen mit einer gewissen Wahrscheinlichkeit ausführen zu lassen. Er könnte zum Beispiel nicht immer zuerst versuchen rechts abzubiegen, sondern zufällig entscheiden, ob er sich nach rechts oder links dreht. Dazu gibt es einige hilfreiche [[Lernpfad:Objektorientierte Programmierung mit Java/Klassenmethoden|Klassenmethoden]] in der Klasse <code>Utils</code>.
{{Kasten|Klassenmethoden lassen sich nutzen, ohne vorher ein Objekt der Klasse erstellt zu haben. Zum Beispiel erzeugt <code>zufallsBool(50)</code> einen Wahrheitswert, der zu 50% <code>true</code> ist.
<syntaxhighlight lang="java">
if( Utils.zufallsBool(50) ) {
    drehe("rechts");
} else {
    drehe("links");
}
</syntaxhighlight>
|Farbe={{Farbe:Info}}}}
Die Verfügbaren Hilfsmethoden sind hier aufgelistet.
{|
|+Hilfsmethoden in der Klasse Utils
|-
! Name !! Beschreibung !! Beispiel
|-
| <code>int zufallsInt( int max )</code>
| Erzeugt eine zufällige Zahl zwischen 0 (inklusive) und <code>max</code> (exklusive).
| <code>Utils.zufallsInt(50) // 0,1,...,49 </code>
|-
| <code>int zufallsInt( int min, int max )</code>
| Erzeugt eine zufällige Zahl zwischen <code>min</code> (inklusive) und <code>max</code> (inklusive).
| <code>Utils.zufallsInt(10,50) // 10,11,...,50 </code>
|-
| <code>int zufallsBool()</code>
| Erzeugt einen zufälligen Wahrheitswert, wobei das Ergebnis zu 50% <code>true</code> und zu 50% <code>false</code> ist.
| <code>if( Utils.zufallsBool() ) {  }</code>
|-
| <code>int zufallsBool( int wkeit )</code>
| Erzeugt einen zufälligen Wahrheitswert, wobei das Ergebnis zu <code>wkeit</code> Prozent <code>true</code> und zu <code>100-wkeit</code> Prozent <code>false</code> ist.
| <code>if( Utils.zufallsBool(75) ) {  }</code>
|}


[[Kategorie:Projekte:2019/20]]
[[Kategorie:Projekte:2019/20]]
8.581

Bearbeitungen

Navigationsmenü