8.581
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Karte}} | {{Karte|Hilfe=9,10,11}} | ||
{{ | {{Aufgabe:Start|Icon=Greenfoot Rover.png}} | ||
# Zerlege jeweils das Problem in sinvolle Teilprobleme (mindestens eins). Implementiere dann pro Teilproblem eine Methode und kombiniere die neuen Befehle dann zu einer Gesamtlösung. | |||
| | {{Aufgabe:End}} | ||
<! | |||
{| {{Prettytable}} | |||
| '''1)''' | |||
| Der Rover soll das Gestein analysieren. Dazu soll er dem Weg aus Marken folgen, indem er immer bis zur nächsten Marke fährt und sich nach links dreht. | |||
| {{Roverkarte|.\nM....M\n.M.......M\n........G.....M\n.\n.\n...M........M\n.\n...M.M\n.\n.M..........M\nM.....R..M....M}} | |||
|- | |||
| '''2)''' | |||
| Der Rover soll auf jedem Feld eine Marke ablegen. | |||
| {{Roverkarte|HHHHHHHHHHHHHHH\nH...H.........H\nH.........H...H\nH....H........H\nH..........H..H\nH...H.........H\nH.............H\nH......H......H\nH..H..........H\nH........H....H\nHR..H.........H\nHHHHHHHHHHHHHHH}} | |||
|} | |||
{{Lösung:Start|Lösung zu 1)}} | |||
<syntaxhighlight lang="Java"> | |||
public void act() { | |||
while( !gesteinVorhanden() ) { | |||
fahreZuMarke(); | |||
} | |||
analysiereGestein(); | |||
} | |||
public void fahreZuMarke() { | |||
while( !markeVorhanden() && !gesteinVorhanden() ) { | |||
fahre(); | |||
} | |||
entferneMarke(); | |||
drehe("links"); | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
{{Lösung:Start|Lösung zu 2)}} | |||
<syntaxhighlight lang="Java"> | |||
public void act() { | |||
String richtung = "links"; | |||
do { | |||
fahreBisHuegel(); | |||
fahreUmHuegel(); | |||
fahreBisHuegel(); | |||
wechseleReihe(richtung); | |||
if( richtung == "links" ) | |||
richtung = "rechts"; | |||
else | |||
richtung = "links"; | |||
} while( !huegelVorhanden("links") ); | |||
} | |||
public void fahreBisHuegel() { | |||
while( !huegelVorhanden("vorne") ) { | |||
setzeMarke(); | |||
fahre(); | |||
} | |||
setzeMarke(); | |||
} | |||
public void fahreUmHuegel() { | |||
drehe("links"); | |||
if( !huegelVorhanden("vorne") ) { | |||
fahre(); | |||
drehe("rechts"); | |||
fahre(); | |||
fahre(); | |||
drehe("rechts"); | |||
fahre(); | |||
drehe("links"); | |||
} else { | |||
drehe("links"); | |||
drehe("links"); | |||
fahre(); | |||
drehe("links"); | |||
fahre(); | |||
fahre(); | |||
drehe("links"); | |||
fahre(); | |||
drehe("rechts"); | |||
} | |||
} | |||
public void wechseleReihe( String pRichtung ) { | |||
drehe(pRichtung); | |||
fahre(); | |||
drehe(pRichtung); | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
{{Inhalt/Lerntheke}} | {{Inhalt/Lerntheke}} |
Bearbeitungen