2.9 Turtle-Tanz 2.9.1 Walter tanzt den Random-Walk |
|
In diesem
Kapitel wollen wir lernen, ein
Turtle-Objekt flexibler über
seinen Zeichenbereich zu bewegen, als wir es von
JTurtleControl
her gewohnt waren. Wir werden dazu den Vorrat an
Turtle-Methoden
weiter ausschöpfen. Wir beginnen damit, dass wir eine Turtle einen 'Random-Walk' tanzen
lassen: Jeder Tanzschritt, den die Turtle unternimmt
unterliegt dem Zufall, das gilt für die Bewegungsrichtung aber auch für die für die Schrittlänge.
Der Tanz gleicht also dem Gang eines Betrunkenen, der nicht nicht
mehr kontrollieren kann in welche Richtung und mit welcher Schrittlänge er
sich als nächstes bewegen wird. 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 wir
Zufallszahlen erzeugen und verwenden können. Die Standardbibliothek von Java
stellt uns in der
Klasse Math,
die eine Vielzahl von mathematischen Methoden zur Verfügung. Eine dieser
Methoden ist die random()-
Methode.
Sie liefert eine Zufallszahl im Intervall [0;1), also eine Zufallszahl die
größer oder gleich 0 und echt kleiner 1 ist. Der Aufruf der Methode
ist ein typischer Aufruf einer sog. Klassenmethode:
<Klassenname>.<Methodenname>: Math.random(); Wollen wir eine Zufallszahl aus dem
Intervall [0,30) erzeugen, schreiben wir
30*Math.random(). Turtle walter; 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(); können wir auch kürzer walter.forward(30*Math.random()); schreiben. Auf eine Variable vorwaerts können wir dann verzichten. Auf die gleiche Weise können wir auch die Wahl der Richtung dem Zufall überlassen. walter.right(360*Math.random()); |
Der Random-Walk |
|
Download: RandomWalk.java |
Der
gesamte Quellcode (er setzt das Paket
turtle
voraus (siehe dazu Anhang A2
Das Turtle-Paket).
|
zu | 2.9.2 Walter und Elsa versuchen den Passo-Doble |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |