Lernpfad:Lerntheke Marsrover/27: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „{{Karte}} {{Inhalt/Lerntheke}}“)
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Karte}}
{{Karte}}
Der Mars-Rover ist so alleine. ☹️ Er wünscht sich einen Partner. Kannst du ihm helfen, einen anderen Rover zu finden?
Kopiere zuerst die folgende Anfrage in die Rover-Klasse (direkt unter die <code>act()</code>-Methode), damit er prüfen kann, ob auf dem Feld vor ihm ein Rover steht.
<syntaxhighlight lang="java" lines="">
    public boolean roverVorne() {
        Rover r = null;
        switch( getRotation() ) {
            case 0:
                r = (Rover) getOneObjectAtOffset(1, 0, Rover.class);
                break;
            case 90:
                r = (Rover) getOneObjectAtOffset(0, 1, Rover.class);
                break;
            case 180:
                r = (Rover) getOneObjectAtOffset(-1, 0, Rover.class);
                break;
            case 270:
                r = (Rover) getOneObjectAtOffset(0, -1, Rover.class);
                break;
        }
        return r != null;
    }
</syntaxhighlight>
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
# Leere die Welt und platziere zwei Rover an zufälligen Orten. Programmiere die Rover so, dass sie sich gegenseitig suchen, bis sie sich gefunden haben.
# Programmiere die Rover so, dass sie sich auch auf einer Karte mit einigen von dir platzierten Hindernissen finden.
# Finden sich die Rover auch auf zufällig generierten Karten? Probiere es aus und passe dein Programm gegebenenfalls an.
{{Aufgabe:End}}


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

Aktuelle Version vom 1. Oktober 2020, 15:29 Uhr

Rover-Liebe

Der Mars-Rover ist so alleine. ☹️ Er wünscht sich einen Partner. Kannst du ihm helfen, einen anderen Rover zu finden?

Kopiere zuerst die folgende Anfrage in die Rover-Klasse (direkt unter die act()-Methode), damit er prüfen kann, ob auf dem Feld vor ihm ein Rover steht.

    public boolean roverVorne() {
        Rover r = null;

        switch( getRotation() ) {
            case 0:
                r = (Rover) getOneObjectAtOffset(1, 0, Rover.class);
                break;
            case 90:
                r = (Rover) getOneObjectAtOffset(0, 1, Rover.class);
                break;
            case 180:
                r = (Rover) getOneObjectAtOffset(-1, 0, Rover.class);
                break;
            case 270:
                r = (Rover) getOneObjectAtOffset(0, -1, Rover.class);
                break;
        }

        return r != null;
    }
Greenfoot Rover.png
Arbeitsauftrag
  1. Leere die Welt und platziere zwei Rover an zufälligen Orten. Programmiere die Rover so, dass sie sich gegenseitig suchen, bis sie sich gefunden haben.
  2. Programmiere die Rover so, dass sie sich auch auf einer Karte mit einigen von dir platzierten Hindernissen finden.
  3. Finden sich die Rover auch auf zufällig generierten Karten? Probiere es aus und passe dein Programm gegebenenfalls an.