Lernpfad:Lerntheke Marsrover/27: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 3: Zeile 3:
Der Mars-Rover ist so alleine. ☹️ Er wünscht sich einen Partner. Kannst du ihm helfen, einen anderen Rover zu finden?
Der Mars-Rover ist so alleine. ☹️ Er wünscht sich einen Partner. Kannst du ihm helfen, einen anderen Rover zu finden?


Kopiere die folgende Anfrage in die Rover-Klasse, damit er prüfen kann, ob auf dem Feld vor ihm ein Rover steht.  
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="">
<syntaxhighlight lang="java" lines="">
Zeile 14: Zeile 14:
                 break;
                 break;
             case 90:
             case 90:
            r = (Rover) getOneObjectAtOffset(0, 1, Rover.class);
                r = (Rover) getOneObjectAtOffset(0, 1, Rover.class);
            break;
                break;
             case 180:
             case 180:
            r = (Rover) getOneObjectAtOffset(-1, 0, Rover.class);
                r = (Rover) getOneObjectAtOffset(-1, 0, Rover.class);
            break;
                break;
             case 270:
             case 270:
            r = (Rover) getOneObjectAtOffset(0, -1, Rover.class);
                r = (Rover) getOneObjectAtOffset(0, -1, Rover.class);
            break;
                break;
         }
         }


Zeile 28: Zeile 28:
</syntaxhighlight>
</syntaxhighlight>


{{Aufgabe:Start}}
{{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.  
# 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.  
# Programmiere die Rover so, dass sie sich auch auf einer Karte mit einigen von dir platzierten Hindernissen finden.  

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.