Zum Hauptinhalt springen
Grundlagen der Programmierung

1.1 Kurze Einführung in JavaRobot 4

JavaRobot 4 simuliert einen Roboter, der auf einem virtuellen Spielbrett eingesetzt wird. Für jedes Szenario werden ein Spielbrett oder mehrere Varianten eines Spielbretts sowie eine konkrete Aufgabenstellung vorgegeben. Ziel ist es, den Roboter so zu programmieren, dass er die vorgegebene Aufgabe erfolgreich löst.

Beispiel: Wegverlauf des Roboters zum Zielfeld

JavaRobot 4 ist in Java, einer objektorientierten Programmiersprache, geschrieben. Auch wenn die objektorientierte Programmierung in diesem Kapitel nicht im Mittelpunkt steht, ist es hilfreich, die grundlegenden Konzepte in groben Zügen zu kennen.

Objekte

Wird ein Computerprogramm, das in einer objektorientierten Programmiersprache geschrieben wurde, ausgeführt, entstehen einzelne Bausteine, sogenannte Objekte. Jedes Objekt besitzt bestimmte Eigenschaften und Fähigkeiten und arbeiten mit anderen Objekten zusammen, um die Funktionalität des Programms bereitzustellen. Eigenschaften, Attribute genannt, dienen als Datenspeicher eines Objekts und können jeweils einen Wert speichern, zum Beispiel eine Zahl oder einen Text. Mit Hilfe seiner Fähigkeiten, Methoden genannt, kann ein Objekt bestimmte Aktionen ausführen.

Klasse als Bauplan

Eine Klasse dient als Bauplan für Objekte und legt fest, über welche Attribute und Methoden diese verfügen. Mit Hilfe dieses Bauplans können zur Laufzeit Objekte der Klasse erzeugt werden.

Klasse Robot: Bauplan für ein Objekt vom Typ Robot

Die folgende vereinfachte Darstellung zeigt einige Attribute und Methoden eines Robot-Objekts.

Ausgewählte Attribute und Methoden der Klasse Robot

Der Datentyp String (Zeichenfolge) dient zur Darstellung von Text. Ein String kann aus beliebig vielen Zeichen bestehen, beispielsweise aus Buchstaben, Ziffern, Leerzeichen und Sonderzeichen.

Der Datentyp int dient zur Darstellung von ganzen Zahlen.

Klasse ScenarioTemplate

Für jede Aufgabe wird ein eigenes Scenario-Objekt benötigt, das festlegt, wie der Roboter die jeweilige Aufgabe lösen soll. Als Vorlage dient die Klasse ScenarioTemplate. Für eine neue Aufgabe wird zunächst eine Kopie dieser Klasse erstellt. Anschließend wird der kopierte Quellcode so angepasst und ergänzt, dass die jeweilige Aufgabenstellung damit effizient gelöst werden kann.

Ausgewählte Attribute und Methoden der Klasse ScenarioTemplate

public class ScenarioTemplate implements Scenario {
    
    private Robot robi = new Robot();
    private String name = "Aufgabe 1-?: Szenario – ?";

    @Override
    public void prepare() {
        robi.setName("robi");
        robi.setColor(RobotColor.WHITE);         
        robi.setSpeed(1);
        robi.startAt(1, 1);
    }

    @Override
    public void start() {
        
    }
  
    // ...

}

Auszug aus dem Quellcode der Klasse ScenarioTemplate.

Der im Attribut name hinterlegte Text erscheint vor dem Start der Simulation in einer Liste, aus der das gewünschte Szenario ausgewählt werden kann. Hier sollte die Überschrift der jeweiligen Aufgabe als Text hinterlegt werden.

Das Attribut robi verweist bereits auf ein neu erstelltes Objekt der Klasse Robot. Es muss nicht verändert werden. Mit seiner Hilfe kann auf das erstellte Robot-Objekt zugegriffen und beispielsweise eine seiner Methoden aufgerufen werden.

Die prepare-Methode dient dazu, das neu erstellte Robot-Objekt für seine Aufgabe vorzubereiten. Zum Beispiel können ihm hier Farbe, Geschwindigkeit und Startposition zugewiesen werden.

Anschließend wird robi mitgeteilt, wie er die Aufgabe lösen soll. Der dafür erforderliche Programmablauf wird in der start-Methode umgesetzt.