Turtlegrafik mit Java

HomeAufgabenDruckenJava-Online

for-Schleife (Iteration)


Anstelle einer while-Schleife kann eine for-Schleife verwendet werden. Die beiden Programmstrukturen sind gleichwertig. Der Startwert, die Schleifenbedingung und die Wertänderung können kurz in einer Zeile notiert werden.
Die Schleifen-Anweisungen werden gleich wie bei einer while-Schleife in einem mit geschweiften Klammern beschränkten Block aufgeführt. Falls nur eine Anweisung vorligt, können die geschweiften Klammern weggelassen werden.

 

// Tu3.java

import ch.aplu.turtle.*;

public class  Tu3
{
  Turtle joe = new Turtle();

  public Tu3()
  {
    for (int = 0; i < 9; i++)
    {
      joe.forward(160);
      joe.right(160);
    }
  }

  public static void main(String[] args)
  {
    new Tu3();
  }
}
   

Erklärungen zum Programmcode:
for (int i = 0; i < 9; i++)

int i = 0 : Startwert
i < 9 : Schleifenbedingung
i++: i wird nach jedem Schleifendurchgang um 1 grösser
Die Trennung mit Strichpunkten ist wichtig



Verschachtelte for-Schleifen


Die for-Schleifen lassen sich verschachteln. Im Beispiel Tu4.java wird mit der inneren Schleife jeweils ein Quadrat gezeichnet, mit der äusseren Schleife werden 10 Quadrate gezeichnet, wobei nach jedem Quadrat eine Drehung um 36 Grad erfolgt.


 

// Tu3a.java

import ch.aplu.turtle.*;

public class  Tu3a
{
  Turtle joe = new Turtle();

  public Tu3a()
  {
    joe.speed(500);
    for (int = 0; k < 10; k++)
    {
      for (int = 0; i < 4; i++)
      {
        joe.forward(80);
        joe.right(90);
      }
      joe.left(36);
    }
  }

  public static void main(String[] args)
  {
    new Tu3a();
  }
}
 

Erklärungen zum Programmcode:
speed(500)
Standardmässig bewegt sich die Turtle mit speed(200), d.h. 200 Schritte (Pixel) pro sekunde.
Mit speed(500) bewegt sie sich schneller. Am schnellsten bewegt sich die Turtle mit speed(-1) oder wenn man sie mit hideTurte() versteckt
for (int k = 0; k < 10; k++)
{
    for (int i = 0; i < 4; i++)
   {
   
    }
}
Zuerst wird k = 0 gesetzt und die innere Schleife für alle i durchlaufen. Danach wird k = 1 gesetzt und die innere Schleife für alle i durchlaufen, usw.
Ein korrekte Einrückung der inneren Schleife macht das Programm übersichtlicher

 

Figuren im Turtle-Fenster positionieren


Mit Hilfe von verschachtelten Schleifen lassen sich Figuren im Turtle-Fenster positionieren.

Das Turtle-Fenster ist 400x400 Pixel gross. Falls keine Positionierung vorgenommen wird, beginnt die Turtle in der Mitte des Fensters zu zeichnen. Mit der Methode setPos(x, y) kann sie an eine belibige Position im Fenster versetzt werden, wobei die x- und y-Koordinaten die Werten zwischen -200 und 200 annehmen können.  

 

// Tu3b.java

import ch.aplu.turtle.*;

public class  Tu3b
{
  Turtle = new Turtle();

  public Tu3b()
  {
    t.speed(-1);
    for (int = -160; x < 150; x = + 70)
    {
      t.setPos(x, 0);
      for (int = 0; i < 5; i++)
      {
        t.forward(80);
        t.right(144);
      }
    }
  }

  public static void main(String[] args)
  {
    new Tu3b();
  }
}
 

Erklärungen zum Programmcode:
speed(-1)
speed(-1) bewirkt das Zeichnen ohne Animation. Turtle ist zwar sichtbar, zeichnet aber schnell
for (int x = -160; x < 150; x = x + 70)
{
     setPos(x, 0);
}
Die erste Figur wird an der Position (-160, 0) gezeichnet. Dann wird x um 70 vergrössert, d.h. die zweite Figur wird an der Position (-90, 0) gezeichne, usw. so lange x kleiner als 150 ist

Aufgaben