TurtleScript

TurtleScript ist die Logo-Programmiersprache im KDE Programm kturtle. Diese Programmiersprache mit der kriechenden Schildkröte ist sehr intuitiv und einfach für Kinder zu lernen. Leider ist die Dokumentation nur in Englisch. Gute Beispiele kommen gleich mit dem Programm mit. Hier eine kurze Zusammenfassung.

In Kürze

Kontrollfluss

Struktur Bedeutung
# irgendein text Kommentar
wait sekunden Warten, sekunden-Sekunden Pause machen
repeat anzahl {…} Schlaufe anzahl-Mal wiederholen
while bedingung {…} Wiederhole Schlaufe solange bedingung zutrifft
for variabel = startwert to endwert {…} Zähle die variabel von startwert bis endwert und wiederhole dabei die Schlaufe
for variabel = startwert to endwert step schrittweite {…} Zähle die variabel in schrittweite Schritten von startwert bis endwert und wiederhole dabei die Schlaufe
break Schlaufe verlassen
exit Programm beenden
if bedingung {…} Wenn bedingung zutrifft dann den Block ausführen, sonst nicht
if bedingung {…} else {…} Wenn bedingung zutrifft dann den ersten Block ausführen, sonst den zweiten nach else
learn kommando parameter1, __parameter2_, … {…} Lernt ein neues Kommando mit Null bis zu einer beliebiger Anzahl Komma getrennter Parameter. Der Block wird beim Aufruf mit den übergebenen Parametern ausgeführt. (Funktion, Prozedur)

Kommandos

Kommando Abkürzung Parameter Bedeutung
forward fw Pixel Vorwärts
backward bw Pixel Rückwärts
center Setzt die Schildkröte in die Mitte.
go X, Y Gehe zur Koordinate X, Y
gox X Gehe links oder rechts zur Koordinate X ohne die Höhe Y zu ändern.
goy Y Gehe nach obenoder unten zur Koordinate Y ohne vertikale Posidion X zu verändern.
turnleft tl Grad Links drehen
turnright tr Grad Rechts drehen
direction dir Grad Setzt die Blickrichtung in eine bestimmte Richtung
penup pu Stift absetzen (hochheben): Die Schildkröte zeichnet keine Spur mehr
pendown pd Stift auf die Leinwand aufsetzen: Die Schildkröte zeichnet wieder
penwidth pw Pixel Breite des Stifts, Breite der gezeichneten Spurlinie in Pixel
pencolor pc R, G, B Farbe des Malstifts, also der gezeichneten Spur
canvassize cs X, Y Festlegen der Leinwandgrösse in Pixeln
canvascolor cc R, G, B Hintergrundfarbe der Leinwand festlegen
clear ccl Leinwand löschen, die Schildkröte und die Farben bleibt unverändert
reset Leinwand löschen, Farben zurücksetzen und die Schildkröte wieder in die Mitte zurück setzen
spriteshow ss Zeige die Schildkröte
spritehide sh Verstecke die Schildkröte
print "text" Text schreiben
fontsize grösse Schriftgrösse in Pixel setzen
message "text" Öffnet ein Fenster mit dem Text

Funktionen

Funktion Abkürzung Parameter Rückgabewert
getx X-Koordinate der Position
gety Y-Koordinate der Position
ask "frage" Stellt eine Frage und gibt die Antwort zurück
round (x) Zahl x auf- oder abrunden
random rnd min, max Zufällige Zahl zwischen min und max, also grösser oder gleich min und kleiner oder gleich max
sqrt x Berechnet die Wurzel der Zahl x
pi Die Zahl PI (π)
sin x Sinus von x
cos x Cosinus von x
tan x Tangens von x
arcsin x Arcussinus von x (die Umkehrfunktion von Sinus)
arccos x Arcuscosinus von x (die Umkehrfunktion von Cosinus)
arctan x Arcustangens von x (die Umkehrfunktion von Tangens)

Kommentare

Kommentare helfen das Programm zu verstehen. Kommentare beginnen mit # und gehen bis zum Ende der Zeile.

# Kommentar: Dies zeichnet ein Viereck
repeat 4 {     # Vier Mal weiderholen für vier Seiten
  forward 100  # Zeichne eine Seite
  turnright 90 # Drehe dann für die nächste Seite
}

Kommandos

Laufen

Die Schildkröte wird über den Bildschirm bewegt. Wenn der Stift unten ist, zeichnet sie dabei eine Spur. Die Schildkröte bewegt sich nicht um Centimeter oder Millimeter, sondern um eine Anzahl Pixel, das sind Punkte auf dem Bildschirm. Um 100 Punkte vorwärts lauffen heisst also: forward 100

Kommando Abkürzung Parameter Bedeutung
forward fw Pixel Vorwärts
backward bw Pixel Rückwärts

Beim Gehen zu einer Koordinate zeichnet die Schildkröte keine Spur.

Kommando Abkürzung Parameter Bedeutung
center Setzt die Schildkröte in die Mitte.
go X, Y Gehe zur Koordinate X, Y
gox X Gehe links oder rechts zur Koordinate X ohne die Höhe Y zu ändern.
goy Y Gehe nach obenoder unten zur Koordinate Y ohne vertikale Posidion X zu verändern.

Drehen

Wenn sich die Schildkröte dreht, ist die Einheit Grad (°) der Winkels. Ein voller Kreis hat 360°. Drehen nach rechts im Rechten Winkel heisst also: turnright 90

Kommando Abkürzung Parameter Bedeutung
turnleft tl Grad Links drehen
turnright tr Grad Rechts drehen
direction dir Grad Setzt die Blickrichtung in eine bestimmte Richtung

Positionsabfrage

Funktion Abkürzung Parameter Rückgabewert
getx X-Koordinate der Position
gety Y-Koordinate der Position

Die Position kann für Berechungen verwendet oder einer Variabel zugewiesen werden, z.B. $x = getx oder gox getx/2

Stift kontrollieren

Den Schreibstift der Schildkröte kann man wie folgt beeinflussen:

Kommando Abkürzung Parameter Bedeutung
penup pu Stift absetzen (hochheben): Die Schildkröte zeichnet keine Spur mehr
pendown pd Stift auf die Leinwand aufsetzen: Die Schildkröte zeichnet wieder
penwidth pw Pixel Breite des Stifts, Breite der gezeichneten Spurlinie in Pixel
pencolor pc R, G, B Farbe des Malstifts, also der gezeichneten Spur

Leinwand kontrollieren

Die Leinwand ist das leere Blatt, auf das die Schildkröte zeichnet.

Kommando Abkürzung Parameter Bedeutung
canvassize cs X, Y Festlegen der Leinwandgrösse in Pixeln
canvascolor cc R, G, B Hintergrundfarbe der Leinwand festlegen

Löschen

Kommando Abkürzung Parameter Bedeutung
clear ccl Leinwand löschen, die Schildkröte und die Farben bleibt unverändert
reset Leinwand löschen, Farben zurücksetzen und die Schildkröte wieder in die Mitte zurück setzen

Schildkröte anzeiogen

Die Schildkröte ist unser kleine Geist, der unsere Kommandos ausführt. Wir können ihn anzeigen oder verschwinden lassen.

Kommando Abkürzung Parameter Bedeutung
spriteshow ss Zeige die Schildkröte
spritehide sh Verstecke die Schildkröte

Text schreiben

Kommando Abkürzung Parameter Bedeutung
print "text" Text schreiben
fontsize grösse Schriftgrösse in Pixel setzen

Benutzerinteraktion

Kommando Abkürzung Parameter Bedeutung
message "text" Öffnet ein Fenster mit dem Text
Funktion Abkürzung Parameter Rückgabewert
ask "frage" Stellt eine Frage und gibt die Antwort zurück

Beispiele: message "Ich starte jetzt!" oder for $i=1 to ask "Wieviele Linien soll ich zeichnen?"

Mathematische Funktionen

Funktion Abkürzung Parameter Rückgabewert
round (x) Zahl x auf- oder abrunden
random rnd min, max Zufällige Zahl zwischen min und max, also grösser oder gleich min und kleiner oder gleich max
sqrt x Berechnet die Wurzel der Zahl x
pi Die Zahl PI (π)
sin x Sinus von x
cos x Cosinus von x
tan x Tangens von x
arcsin x Arcussinus von x (die Umkehrfunktion von Sinus)
arccos x Arcuscosinus von x (die Umkehrfunktion von Cosinus)
arctan x Arcustangens von x (die Umkehrfunktion von Tangens)

Kontrollfluss

Warten

wait s wartet s Sekunden lang.

Schlaufen

Wiederholen

repeat $n {…} wiederholt $n-Mal. Das ist die einfachste Schlaufe.

Ein Viereck zeichnen vier Linien in um 90° verschobene Richtungen:

Wiederholen mit Zähler

Eine for-Schlaufe ist ähnlich wie repeat, es gibt aber eine Variabel, welche die Schritte zählt. Dies ist notwendig, wenn man wissen muss, im wievielten Durchlauf die Wiederholung ist.

Beispiel: Ein Viereck soll dünne Linien haben, aber die zweite Linie soll dicker sein:

Man kann auch die Schrittweite angeben mit step. Eine Schleife von 10 bit 100 in 10er-Schritten heisst dann: for $i=10 to 100 step 10

Bedingte Schleife

Wiederhole Kommandos solange, wie eine Bedingung gilt, schreibt man mit while $Bedingung {…}.

Aus einer Schleife herausspringen

Eine Schleife kann man vorzeitig verlassen mit dem Kommando break.

Beispiel:

Programm beenden

Das Kommando exit beendet sofort das Programm.

Bedingungen

Wenn bestimmte Operationen nicht immer durchgeführt werden sollen, kann man Bedingungen setzen mit if, das bedeutet «wenn». Neben dem if gibt es noch ein else, das bedeutet «sonst». Das was in else steht, wird nur durchlaufen, wenn die Bedingung falsch ist:

Eigene Kommandos

Eigene Kommandos (Funktionen) kann der Computer lernen, darum heisst der Befehl dazu learn.

Nochmals zum Viereck: Wenn ich nur noch viereck schreiben will, um ein Viereck zu zeichnen, kann ich der Schildkröte das beibringen:

Wenn ich nun irgendwo viereck schreibe, zeichnet die Schildkröte ein Viereck genau da, wo sie steht.

Aber alle Vierecke sind immer gleich gross. Und was ist mit Dreiecken oder Fünfecken? Ich will die Länge angeben (nicht nur 100) und die Anzahl Ecken (nicht nur 4). Die Zahl 90 kommt davon, dass wir den Kreis mit 360° durch 4 teilen, also ist eigentlich 360/4 gemeint.

Ein n-Eck ist also:

Dabei ist $n die Anzahl Ecken und $laenge die Länge einer Seite. Daraus können wir ein Kommando (eine Funktion) schreiben, welchem mal die Werte für $n und $laenge als Parameter übergibt, genauso wie bei den eingebauten Kommandos:

Nun kann ich n_eck 5, 50 schreiben um ein Fünfeck mit der Seitenlänge 50 zu zeichnen.

Mögliche Bedingungen

Zeichen Bedeutung Beispiel
== Gleich wie $a == $b
!= Ungleich, verschieden $a == $b
< Kleiner als $a < $b
> Grösser als $a > $b
Kleiner oder gleich wie $a ⇐ $b
>= Grösser oder gleich wie $a >= $b

Wenn eine Bedingung zutrifft, ist ihr Wert true, das bedeutet «wahr». Wenn sie nicht zutrifft, ist ihr Wert false, das bedeutet «falsch».

Variabeln

Variabeln beginnen immer mit einem $-Zeichen. Die Variable x heisst also $x. Man kann den Variabeln alle möglichen Typen zuweisen.

Typen

  • Zahlen: 1, 2, 1.5, -0.5, u.s.w.
  • Texte: "Hallo Welt"
  • Logische Werte: true (wahr), false (falsch)

Beispiele:

  • $a = 4.25 ($a hat nun den Wert 4.25)
  • $txt = "Dein Name ist "+ask "Was ist Dein Name?"
  • $b = $txt == "hallo" ($b ist true, wenn die Variabel $txt genau den Wert hallo hat, sonst ist es false)

Koordinaten

Koordinaten sind die direkte Adressierung eines Punktes auf der Leinwand. Wenn die Leinwand z.B. 200x200 Pixel misst, ist:

Position X Y Koordinaten
oben links 0 0 0, 0
oben rechts 200 0 200, 0
unten links 0 200 0, 200
unten rechts 200 200 200, 200

Farben

Farben werden mit ihrem Rot-, Grün- und Blau-Anteil angegeben, abgekürzt: R, G, B. Jeder Wert für R, G und B geht von 0 (keine Farbe) bis 255 (maximale Farbe).

Beispiele:

Farbe R, G, B Wert Kommentar
Schwarz 0, 0, 0 Keine Farbe
Weiss 255, 255, 255 Alle Farben im Maximum
Grau 127, 127, 127 Schwarz und Weiss gemischt: alle Farben zur Hälfte
Rot 255, 0, 0 Maximum Rot
Grün 0, 255, 0 Maximum Grün
Blau 0, 0, 255 Maximum Blau
Gelb 255, 255, 0 Rot und Grün gemischt
Türkis 0, 255, 255 Grün und Blau gemischt
Violett 255, 0, 255 Rot und Blau gemischt
Hellrot 255, 127, 127 Maximum Rot gemischt mit der Hälfte der anderen Farben
Hellgrün 127, 255, 127 Maximum Grün gemischt mit der Hälfte der anderen Farben
Hellblau 127, 127, 255 Maximum Blau gemischt mit der Hälfte der anderen Farben
Dunkelrot 127, 0, 0 Rot nur zur Hälfte
Dunkelgrün 0, 127, 0 Grün nur zur Hälfte
Dunkelblau 0, 0, 127 Blau nur zur Hälfte
/var/www/marc.waeckerlin.org/data/pages/kinder/kturtle.txt · Zuletzt geändert: 2010/08/14 13:35 von mrw
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki