Lernpfad:Lerntheke Marsrover/20
Bei der Programmierung kommt es häufig vor, dass der weitere Ablauf des Programms von einer Entscheidung abhängt. Zum Beispiel:
Wenn vorne kein Hügel ist dann fahre, sonst drehe rechts
oder
WENN gesteinVorhanden() DANN analysiereGestein() SONST setzeMarke()
Solche Verzweigungen oder Fallunterscheidungen kennst du auch schon von Programmablaufplänen:
Der Rover kann schon einige Entscheidungen treffen. Dazu besitzt der Rover sogenannte Anfragen.
- Lade eine Zufallswelt und platziere den Rover an verschiedenen Stellen. Rufe mit einem Rechtsklick auf den Rover das Menü auf. Die Anfragen des Rovers fangen mit
boolean
an.
Probiere die Anfragen des Rovers aus und finde heraus, was sie überprüfen.
boolean huegelVorhanden( richtung )
- Prüft, ob in der angegebenen Richtung ein Hügel vorhanden ist.boolean gesteinVorhanden()
- Prüft, ob auf dem aktuellen Feld des Rovers ein Gestein vorhanden ist.boolean markeVorhanden()
- Prüft, ob auf dem aktuellen Feld des Rovers eine Marke vorhanden ist.
Möchtest du selber eine Verzweigungen in Java programmieren, dann benutzt du eine Bedingten Anweisung:
if( gesteinVorhanden() ) {
analysiereGestein();
} else {
setzeMarke();
}
- Analysiere den Quelltext oben und stelle Vermutungen über die Bedeutung der Schlüsselwörter
if
undelse
. Notiere dir Stichpunkte im Heft. - Vergleiche deine Vermutungen mit dem Text im Buch auf Seite 48.
Lade für die Aufgaben die unten gezeigte Karte.
- Implementiere in der
act()
-Methode einen Algorithmus, der den Rover bis zum nächsten Hügel vorwärts fahren lässt. - Erweitere den Algorithmus so, dass der Rover auf dem Weg alle Gesteine analysiert.
- Erweitere das Programm so, dass auf allen Feldern ohne Gestein eine Marke abgelegt wird.
".\n.\n.\n.\n.\n.R..[.G].[.G][.G][.G][.GH][.GH][.G][.G]H"
public void act() {
if( gesteinVorhanden() ) {
analysiereGestein();
} else {
setzeMarke();
}
if( huegelVorhanden("vorne") ) {
// leer
} else {
fahre();
}
}
Das ist Greenfoot | Der Mars-Rover | Die Welt des Mars-Rover | Das ist Java | Die Rover-Arena | Greenfoot benutzen | Java Syntax | Variablen | Methoden | Bedingte Anweisungen | Schleifen | Objekte | Arrays | Die Fähigkeiten des Rovers | Steine analysieren I | Steine analysieren II | Strukturiertes programmieren | Programme strukturieren I | Programme strukturieren II | Fallunterscheidungen I | Anfragen | Fallunterscheidungen II | Variablen | Objektvariablen | Wiederholungen I | Wiederholungen II | Rover-Liebe | Steine analysieren III | Gefangen im Labyrinth I | Marken-Maler | Fleißige Rover | Gefangen im Labyrinth II | In der Rover-Arena | Parameter