Die Startzahl 1 wird durch den Aufruf von fibomod() in der paint()-Methode vorgegeben. Die zweite Zahl z2 wird durch den Benutzer angegeben. Bei der Rekursion wird zz aus der Summe der vorhergegangenen Zahlen zum Modulus 9 berechnet: zz = (z1 + z2) mod 9
import java.awt.*;
import java.awt.event.*;
public class Fibomod extends Frame {
static int zahl2;
static int winkel;
static int ebenen;
public void paint (Graphics g) {
Turtle t = new Turtle(this, 100,100);
fibomod(t,1,zahl2,winkel, ebenen);
}
public void fibomod(Turtle t, int z1, int z2, int winkel, int ebene) {
if (ebene>0) {
int zz = (z1 + z2) % 9;
t.fd(zz*5);
t.rt(winkel);
fibomod(t, z2, zz, winkel, ebene-1);
}
}
public static void main(String [] args) {
if (args.length < 2) {
System.out.println("Aufruf: % java Fibomod zahl2(7) winkel(72) ebenen(200)");
System.exit(0);
}
zahl2 = Integer.parseInt(args[0]);
winkel = Integer.parseInt(args[1]);
ebenen = Integer.parseInt(args[2]);
Fibomod fprog = new Fibomod();
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("... und aus ;-)");
System.exit(0);
}
};
fprog.addWindowListener(wl);
fprog.setTitle("Fibomod 9, Zahl2: " + zahl2 + ", " + winkel + "° ");
fprog.setLocation(100,100);
fprog.setSize(300,300);
fprog.show();
}
}