Eine Sprachreferenz zur Lernumgebung

Dir stehen 11 vor implementierte Funktionen/Befehle zur Verfügung, um Karel zu programmieren.

 

An dieser Stelle wollen wir erstmal auf die ersten 6 eingehen. (Später erweitern wir die Sprachreferenz um die sogenannten Kontrollstrukturen).

 

Anders als beispielsweise in der Arduino-IDE kannst du hier allerdings keine Variablen verwenden.

TastenkürzelFunktionBeschreibung
F1moveForward()Karel bewegt sich ein Feld vorwärts in die Richtung, in die er gerade schaut.
Misslingt, wenn eine Wand den Weg versperrt
F2turnLeft()Karel dreht sich um 90° nach links
F3turnAround()Karel dreht sich um 180°
F4turnRight()Karel dreht sich um 90° nach rechts
F5pickBeeper()Karel nimmt den Beeper von dem Feld, auf dem er gerade steht auf.
Misslingt, wenn es keinen Beeper (auf dem Feld) gibt
F6dropBeeper()Karel wirft einen Beeper auf den Platz, auf dem er gerade steht
Misslingt, wenn dort bereits ein Beeper liegt
F12Startet dein Programm
Stelle den Geschwindigkeitsregler auf 0 (ganz links), um das Programm Schritt für Schritt zu durchlaufen (für start && goal)

Hier findest du Erklärungen, zu verschiedenen Sachen, die du in der Lernumgebung benutzen kannst.

Es bringt dir an der Stelle (am Anfang) nichts, die Sprachreferenz durchzuarbeiten. Fang einfach an, die ersten Kapitel der Lernumgebung zu programmieren und achte auf die Verlinkungen (der orangene Text zum anklicken)

Erstellen von Funktionen

Lernumgebung - Sprachreferenz_Funktionen_erstellen

Nutze die vorimplementierten Befehle (F1 – F6)

void karelsFirstProgram(){
moveForward();
moveForward();
moveForward();
moveForward();

 

turnAround();

 

moveForward();
moveForward();
moveForward();
moveForward();
}

Jedes mal, wenn ihr eine Funktion erstellt, müsst ihr auf 4 Sachen achten!

Funktionsname

Keine Umlaute/Sonderzeichen/Leerzeichen: (also kein ä, ü, ö, ß , …) .

Der Name sollte auch nicht nur aus einem Großbuchstaben bestehen.

Klammern ()

Hinter dem Namen stehen runde Klammern

(Wird später nochmal wichtig)

Klammern { }

Zwischen den geschweiften Klammern stehen die Befehle (Anweisungen).

Tastenkürzel:

         Windows:  [ AltGr – 7 ] und [ AltGr – 9 ]

         MacOS: [ Alt – 8 ] und [ Alt – 9 ]

Datentyp void

Was das heißt, schauen wir uns später an!

Jetzt könnt ihr für jede Funktion einfach void schreiben.

 

 

So siehts aus:

void Name() {

   …

   …

   …

}

Wiederkehrende Befehle

Lernumgebung - Sprachreferenz_Funktionen_erstellen

Um Befehle mehrfach zu verwenden, kann „repeat (#Anzahl)“ verwendet werden

Hier steht der selbe Code wie oben, nur anders geschrieben!

void karelsFirstProgram(){

    repeat(4){

        moveForward();

    }

 

    turnAround();

 

    repeat(4){

        moveForward();

    }

}

Hinweis: Natürlich können in der Repeat-Anweisung auch mehrere Befehle stehen.

Funktionen aufrufen

Es können auch „neue“ Funktionen erstellt werden: hier „laufen()“.

Die Funktion „laufen()“ wird aufgerufen.

 

Es ist also wieder der selbe Code wie oben, wieder anders geschrieben!

Lernumgebung - Sprachreferenz_Funktionen_erstellen

void karelsFirstProgram(){

    laufen();

}

void laufen(){
    moveForward();
    moveForward();
    moveForward();
    moveForward();

 

    turnAround();

 

    moveForward();
    moveForward();
    moveForward();
    moveForward();
}

Kommentare

Auskommentierter Text wird in der Lernumgebung grün dargestellt.

Auskommentiert heißt, dass es kein Code ist. Mit Kommentaren könnt ihr (euch) Notizen machen, Sachen erklären und vieles mehr!

 

In beiden Fällen macht Karel 1 Schritt vorwärts, weil die entsprechenden Code-Teile auskommentiert sind.

Tipp: Nur ein gut kommentierter Code ist ein guter Code. Andere (und vielleicht auch du in ein/zwei Jahren) wollen verstehen, was du programmiert hast.

// eine Zeile auskommentieren

void random_Funktion(){

    laufen();                  // lauf hin und zurück

    turnAround();         // dreh dich um

 

// turnLeft();

 

    moveForward();    // mache 1 Schritt

/* … */ Mehrere Zeilen auskommentieren

void random_Funktion(){

/*  laufen();

      turnAround();

      turnLeft();  */

   

moveForward();    // mache 1 Schritt

In Anlehnung an: github.com/fredoverflow/karel