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(); } }