|
//Tu5.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu5 { Turtle joe = new Turtle(); public Tu5() { joe.setPos(-200, -200); joe.setLineWidth(5); for (int i = 0; i < 10; i++) { if (i % 2 == 0) joe.setPenColor(Color.red); else joe.setPenColor(Color.green); joe.fd(40).rt(90).fd(40).lt(90); } } public static void main(String[] args) { new Tu5(); } } |
setPos(-200, -200) |
Die Turtle wird an die Position mit der x-Koordinate - 200 und der y-Koordinate - 200 gesetzt |
setLineWidth(5) |
Die Strichdicke wird auf 5 gesetzt. Standardwert ist 1 |
if (i % 2 == 0) |
Überprüft, ob eine Zahl gerade oder ungerade ist. % ist die sogenannte Modulooperation. Diese gibt den Rest nach der Ganzzahldivision an. Wenn der Rest nach der Division durch 2 gleich 0 ist, ist die Zahl gerade, sonst ungerade |
joe.fd(20).rt(90).fd(20).lt(90) |
Zur Abkürzung können mehrere Turtlemethoden verkettet hintereinander aufgerufen werden |
Oft ist der else-Teil überflüssig Das Programm verzweigt in den if-Block, falls die Bedingung erfüllt ist. In diesem Beispiel bewegt sich die Turtle in einer Wiederholstruktur vorwärts und dreht um 90° nach rechts. Dabei wird die Schrittlänge nach jedem Schleifendurchgang um 2 vergrössert. Falls die die Schrittlänge gleich 140 ist, wechselt die Stiftfarbe auf grün. Die aktuelle Schrittlänge kann in der Statusbar ausgeschrieben werden. |
//Tu6.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu6 { Turtle t = new Turtle(); public Tu6() { t.addStatusBar(20); t.speed(-1); t.setPenColor(Color.red); for (int s = 4; s < 200; s = s + 2) { if (s == 140) t.setPenColor(Color.green); t.forward(s); t.right(90); t.setStatusText("Size: " + s); } } public static void main(String[] args) { new Tu6(); } } |
addStatusBar(20) | Erzeugt eine 20 Pixel hohe Statusbar, in der während der Programmausführung Informationen ausgeschrieben werden können
|
setStatusText("Size: " + s) | Ersetzt den vorhandenen Text durch einen neuen |
if (s == 140) setPenColor(Color.green) |
Nach der if-Bedingung folgt nur eine einzige Anweisung. Es sind daher keine Blockklammern notwendig |
|
//Tu7.java import ch.aplu.turtle.*; import java.awt.Color; public class Tu7 { Turtle joe = new Turtle(); public Tu7() { joe.hideTurtle(); joe.clear(Color.black); joe.setLineWidth(4); for (int i = 0; i < 120; i++) { if (i % 3 == 0) joe.setPenColor(Color.red); else if (i % 3 == 1) joe.setPenColor(Color.green); else joe.setPenColor(Color.magenta); joe.forward(150); joe.back(150); joe.left(3); } } public static void main(String[] args) { new Tu7(); } } |
joe.hideTurtle() | Turtle wird unsichtbar, das Zeichnen erfolgt schneller |
joe.clear(Color.black) |
Das ganze Turtle-Fenster wird mit der schwarzen Farbe gefüllt |
if (i % 3 == 0) joe.setPenColor(Color.red); else if (i % 3 == 1) joe.setPenColor(Color.green); else joe.setPenColor(Color.magenta); |
Falls der Rest nach der Division durch 3 gleich 0 ist, wird die Stiftfarbe auf rot gesetzt. Anderfalls wird überprüft, ob der Rest nach der Division durch 3 gleich 1 ist. Trifft dieses zu, wird die Stiftfarbe auf grün gesetz, sonst wird die Stiftfarbe auf magenta gesetzt. |