Lernpfad:Lerntheke Marsrover/31: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 66: Zeile 66:
# Probiere den Turing-Rover aus und prüfe, was diese "Turingmaschine" macht.
# Probiere den Turing-Rover aus und prüfe, was diese "Turingmaschine" macht.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
Der obere Teil der Klasse Rover muss wie folgt aussehen:
<syntaxhighlight lang="java">
public class Rover extends Actor {
    private Display anzeige;
    private int zustand = 0;
   
    /**
    * Act-Methode des Rovers. Programmiere hier deinen Algorithmus und starte
    * ihn mit dem "Act"-Button in Greenfoot.
    */
    public void act() {
        switch( zustand ) {
            case 0:                    // Wenn in Zustand 0
                zustand = zustand0();  // führe die Methode "zustand0" aus
                break;                  // und beende die act()-Methode
        }
    }
   
    public int zustand0() {
        if( markeVorhanden() ) {// es wurde "1" gelesen
            entferneMarke();        // schreibe eine "0"
            links();                // bewege den Kopf nach links
            return 0;              // bleibe in Zustand 0
        } else {                // Es wurde "0" gelesen
            setzeMarke();          // schreibe eine "1"
            rechts();              // bewege den Kopf nach links
            return 1;              // wechsele in Zustand 1
        }
    }
   
    public void links() {
        drehe("links");
        fahre();
        drehe("rechts");
    }
   
    public void rechts() {
        drehe("rechts");
        fahre();
        drehe("links");
    }
   
    // Rest der Klasse Rover folgt hier ...
   
}
Die Turingmaschine schreibt eine "1" (eine Marke) auf das Band und macht dann nichts mehr (terminiert).
</syntaxhighlight>
{{Lösung:End}}


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

Bearbeitungen