Lernpfad:Lerntheke Marsrover/27

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
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.