Lernpfad:Lerntheke Marsrover/19: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 7: Zeile 7:
{| {{Prettytable}}
{| {{Prettytable}}
| '''1)'''
| '''1)'''
| Der Rover soll auf jedem Feld eine Marke ablegen.
| 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|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}}
| {{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)'''
| '''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.
| Der Rover soll auf jedem Feld eine Marke ablegen.
| {{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|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 2)}}
{{Lösung:Start|Lösung zu 1)}}
<syntaxhighlight lang="Java">
<syntaxhighlight lang="Java">
     public void act() {
     public void act() {
Zeile 30: Zeile 30:
         entferneMarke();
         entferneMarke();
         drehe("links");
         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>
</syntaxhighlight>
8.581

Bearbeitungen