8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) 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}} |
Bearbeitungen