8.4 Walter tanzt den Random-Walk
 
  In diesem Kapitel wollen wir lernen, wie wir eine Turtle einen Random-Walk tanzen lassen. Das geht so. Jeder Tanzschritt, den die Turtle unternimmt unterliegt dem Zufall, das gilt für die Richtung und für die Schrittlänge. Der Tanz gleicht also eher dem Gang eines Betrunkenen. Tatsächlich kennt die Physik diesen Tanz, man nennt ihn dort "Brownsche Bewegung".
 
Zufallszahlen Um unseren Tanz implementieren zu können, müssen wir noch lernen, wie man Zufallszahlen erzeugen und verwenden können. Es gibt im Standard-Java eine Klasse Math, die allerlei mathematischen Methoden zur Verfügung stellt . Wie etwa die Methode random(). Sie liefert eine Zufallszahl im Intervall [0;1). Der Aufruf der Methode ist leicht:

Math.random();

Wollen wir eine Zufallszahl aus dem Intervall [0,30) erzeugen, brauchen wir 30*Math.random() zu benutzen.

Jetzt zu unserem Programm. Wir deklarieren und erzeugen eine Turtle mit dem Namen
drunkenTurtle.

Turtle walter;
...
walter = new Turtle(tWin);

In der Methode zeichne() deklarieren wir eine Variable vorwaerts vom Typ double und speichern in ihr eine Zufallszahl zwischen 0 und 30 (genauer aus dem Intervall [0;30).

double vorwaerts = 30*Math.random();

mit

walter.forward(vorwaerts);

bewegt sich die Turtle also um diese zufällig gewählte Strecke in ihre Blickrichtung.

Statt der beiden Zeilen

double vorwaerts = 30*Math.random();
walter.forward(vorwaerts);

können wir auch kürzer

walter.forward(30*Math.random());

schreiben, denn auf die Variable vorwaerts greifen wir nicht mehr zu, sie ist also eigentlich überflüssig.

Auf die gleiche Weise können wir auch die Wahl der Richtung dem Zufall überlassen.

walter.right(360*Math.random());
 

Der Random-Walk


 

Download:
RandomTurtle.java
Der gesamte Quellcode (er setzt das Paket turtle voraus, siehe Kap .8.1)
import turtle.*;
import java.awt.*;

public class RandomTurtle extends TurtleFrame {
    Turtle walter;
    public RandomTurtle(String title) {
        super(title);
        walter = new Turtle(tWin);
    }

    public void zeichne() {
        walter.right(360*Math.random());
        walter.forward(30*Math.random());
    }

    public static void main (String[] args) {
        new RandomTurtle("Random-Walk");
    }
}
zu 8.5 Walter und Elsa versuchen den Passo-Doble
zur Startseite www.pohlig.de  (C) MPohlig 2003