Lernpfad:Lerntheke Marsrover/19: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
| {{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}}
| {{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}}
|}
|}
{{Lösung:Start|Lösung zu 2)}}
<syntaxhighlight lang="Java">
    public void act() {
        while( !gesteinVorhanden() ) {
            fahreZuMarke();
        }
        analysiereGestein();
    }
    public void fahreZuMarke() {
        while( !markeVorhanden() && !gesteinVorhanden() ) {
            fahre();
        }
        entferneMarke();
        drehe("links");
    }
</syntaxhighlight>
{{Lösung:End}}


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

Version vom 1. Dezember 2020, 09:34 Uhr

Programme strukturieren II
Greenfoot Rover.png
Arbeitsauftrag
  1. 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.


1) Der Rover soll auf jedem Feld eine Marke ablegen.
Kartendaten:
"HHHHHHHHHHHHHHH\nH...H.........H\nH.........H...H\nHH............H\nH..........H..H\nH...H.........H\nH.............H\nH......H......H\nH..H..........H\nH........H....H\nHR...........HH\nHHHHHHHHHHHHHHH"
2) 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.
Kartendaten:
".\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"
Lösung zu 2)
    public void act() {
        while( !gesteinVorhanden() ) {
            fahreZuMarke();
        }
        analysiereGestein();
    }

    public void fahreZuMarke() {
        while( !markeVorhanden() && !gesteinVorhanden() ) {
            fahre();
        }
        entferneMarke();
        drehe("links");
    }