Lernpfad:Lerntheke Marsrover/14

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Die Fähigkeiten des Rovers

Der Marsrover besitzt verschiedene Fähigkeiten, die in Java als Methoden implementiert sind. Er kann zum Beispiel fahren oder Gestein analysieren. Die Methoden lassen sich in zwei Arten einteilen: Aufträge und Anfragen.

In Greenfoot kannst du dir mit einem Rechtsklick auf ein Rover-Objekt die Fähigkeiten des Rovers anzeigen lassen.

Rover Methoden.jpg

Auf Seite 25 im Buch findest du eine Übersicht mit Beschreibungen der Methoden, die der Rover anbietet und von dir bei der Programmierung genutzt werden können. Am besten legst du das Buch bei der Arbeit immer offen neben dich.

Für den Anfang brauchst du vor allem die folgenden Aufträge:

Aufträge des Mars-Rovers
Auftrag void fahre()
Der Rover bewegt sich ein Feld vorwärts.
Auftrag void drehe(String richtung)
Der Rover dreht sich nach "rechts" oder "links".
Auftrag void analysiereGestein()
Der Rover analysiert (und entfernt) das Gestein an seiner Position, falls eins vorhanden ist.
Auftrag void setzeMarke()
Der Rover legt eine Markierung ab.
Auftrag void entferneMarke()
Der Rover entfernt die Marke an seiner Position, falls eine vorhanden ist.
Greenfoot Rover.png
Arbeitsauftrag
  1. Programmiere den Rover so, dass er drei Felder nach vorne fährt und dort eine Marke ablegt.
  2. Ändere das Programm so ab, dass der Rover ein Quadrat der Kantenlänge vier abfährt und an jeder Ecke eine Marke platziert.
  3. Erstelle ein neues Programm, das den Rover das Gestein auf der Karte unten analysieren lässt.
Kartendaten:
".\n.\n.\n...R\n.\n..hhhhhhhhhh\n..........gh\n.......hhhhh"
Lösung

1)

    public void act() {
        fahre();
        fahre();
        fahre();
        setzeMarke();
    }

2)

    public void act() {
        fahre();
        fahre();
        fahre();
        fahre();
        setzeMarke();
        drehe("rechts");
        fahre();
        fahre();
        fahre();
        fahre();
        setzeMarke();
        drehe("rechts");
        fahre();
        fahre();
        fahre();
        fahre();
        setzeMarke();
        drehe("rechts");
        fahre();
        fahre();
        fahre();
        fahre();
        setzeMarke();
        drehe("rechts");
    }

3)

    public void act() {
        drehe("rechts");
        drehe("rechts");
        fahre();
        fahre();
        drehe("links");
        fahre();
        fahre();
        fahre();
        drehe("links");
        fahre();
        fahre();
        fahre();
        fahre();
        fahre();
        fahre();
        fahre();
        fahre();
        fahre();
        analysiereGestein();
    }