Lernpfad:Lerntheke Marsrover/34: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:
     while( pAnzahl > 0 ) {
     while( pAnzahl > 0 ) {
         fahre();
         fahre();
        pAnzahl -= 1;
     }
     }
}
}
Zeile 26: Zeile 27:
# Implementiere eine Anfrage <code>public boolean markeNebenan(String pRichtung)</code>, die den Rover prüfen lässt, ob in der übergebenen Richtung ("links" oder "rechts") eine Marke liegt. (Der Rover muss dazu ein Feld in die angegebene Richtung fahren.)
# Implementiere eine Anfrage <code>public boolean markeNebenan(String pRichtung)</code>, die den Rover prüfen lässt, ob in der übergebenen Richtung ("links" oder "rechts") eine Marke liegt. (Der Rover muss dazu ein Feld in die angegebene Richtung fahren.)
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
{{Lösung:Start|analysiereGesteine}}
{{Lösung:End|analysiereGesteine}}
<syntaxhighlight lang="Java">
<syntaxhighlight lang="Java">
public void analysiereGesteine( int pAnzahl ) {
public void analysiereGesteine( int pAnzahl ) {
Zeile 39: Zeile 39:
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Inhalt/Lerntheke}}
{{Lösung:End}}
{{Lösung:End|markeNebenan}}
{{Lösung:Start|markeNebenan}}
<syntaxhighlight lang="Java">
<syntaxhighlight lang="Java">
public boolean markeNebenan(String pRichtung) {
public boolean markeNebenan(String pRichtung) {
Zeile 48: Zeile 48:
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Inhalt/Lerntheke}}
{{Lösung:End}}


{{Kasten|Diese Karte ist leichter, wenn du schon etwas über {{Pfad|20|Variablen}} weißt. Mit den Hilfen kannst du aber auch versuchen die Karte so zu lösen.|Farbe={{Farbe:Info}}}}
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
# Erweitere Aufgabe 2 so, dass der Rover die Gesteine nicht nur auf einer Gerade sucht, sondern die gesamte Karte absucht. (Überleg dir zunächst eine ''Suchstrategie'', nach der der Rover vorgehen kann.) Du kannst die Karte <code>"karte34_gesteine_suchen"</code> laden.
# Erweitere Aufgabe 2 so, dass der Rover die Gesteine nicht nur auf einer Gerade sucht, sondern die gesamte Karte absucht. (Überleg dir zunächst eine ''Suchstrategie'', nach der der Rover vorgehen kann.) Du kannst die Karte <code>"karte34_gesteine_suchen"</code> laden.
# Erweitere Aufgabe 3 so, dass der Rover auf seine ursprüngliche Position zurückkehrt.
# Erweitere Aufgabe 3 so, dass der Rover auf seine ursprüngliche Position zurückkehrt.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start|analysiereGesteine}}
Verschiedene Lösungen möglich. Hier Fährt der Rover, bis er einen Huegel erreicht, wechselt dann nach links in die nächste Zeile und wiederholt das Ganze. Am Ende muss er diesmal allerdings nach rechts wechseln.
<syntaxhighlight lang="Java">
public void analysiereGesteine( int pAnzahl ) {
    boolean wechseleNachLinks = true;
    while( pAnzahl > 0 ) {
        if( huegelVorhanden("vorne") ) {
            if( wechseleNachLinks ) {
                drehe("links");
                fahre();
                drehe("links");
                wechseleNachLinks = false;
            } else  {
                drehe("rechts");
                fahre();
                drehe("rechts");
                wechseleNachLinks = true;
            }
        }
       
        fahre();
        if( gesteinVorhanden() ) {
            analysiereGestein();
            pAnzahl -= 1;
        }
    }
}
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:Start|markeNebenan}}
<syntaxhighlight lang="Java">
public boolean markeNebenan(String pRichtung) {
    boolean marke = false;
    drehe(pRichtung);
    fahre();
    marke = markeVorhanden();
    drehe("rechts");
    drehe("rechts");
    fahre();
    drehe(pRichtung);
    return marke;
}
</syntaxhighlight>
{{Lösung:End}}
{{Inhalt/Lerntheke}}
8.581

Bearbeitungen

Navigationsmenü