Lernpfad:Lerntheke Marsrover/18: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 30: Zeile 30:
Entwirf das Programm so, dass die Größe des Hügels egal ist. Die Form einer Raute bleibt aber erhalten. Lade die Karte <code>"karte18_huegelraute"</code> in die Planetenwelt für eine zufällige Raute bei jedem Reset.  
Entwirf das Programm so, dass die Größe des Hügels egal ist. Die Form einer Raute bleibt aber erhalten. Lade die Karte <code>"karte18_huegelraute"</code> in die Planetenwelt für eine zufällige Raute bei jedem Reset.  
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
Mögliche Zerlegung:
; rauteAbfahren()
: LÖsung des Problems: Die gesamte Raute wird abgefahren und die Steine gesammelt.
; fahreSeite()
: Fährt eine Seite der Raute ab, wenn der Rover mit Blickrichtung zur Raute steht.
; fahreUmHuegel()
: Fährt um einen einzelnen Huegel an einer Seite der Raute.
<syntaxhighlight lang="java">
public void fahreUmHuegel() {
drehe("links");
    fahre();
    drehe("rechts");
    fahre();
}
public void fahreSeite() {
fahreUmHuegel();
    fahreUmHuegel();
    fahreUmHuegel();
    drehe("rechts"); // Blickrichtung zur Raute
}
public void rauteAbfahren() {
fahreSeite();
    analysiereGestein(); // Analysiere das Gestein am Ende der Seite
    fahreSeite();
    analysiereGestein();
    fahreSeite();
    analysiereGestein();
    fahreSeite();
}
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:Start|Lösung des fortgeschrittenen Problems}}
<syntaxhighlight lang="java">
public void fahreUmHuegel() {
drehe("links");
    fahre();
    drehe("rechts");
    fahre();
}
public void fahreSeite() {
// Solange kein Hügel vorhanden
while( !huegelVorhanden("vorne") ) {
fahreUmHuegel();
}
    // Blickrichtung zur Raute
    drehe("rechts");
}
public void rauteAbfahren() {
fahreSeite();
    analysiereGestein(); // Analysiere das Gestein am Ende der Seite
    fahreSeite();
    analysiereGestein();
    fahreSeite();
    analysiereGestein();
    fahreSeite();
}
</syntaxhighlight>
{{Lösung:End}}


{{Inhalt/Lerntheke}}
{{Inhalt/Lerntheke}}
8.581

Bearbeitungen