import java.awt.*;
import java.applet.*;

public class KompFlohhuepfen extends Applet
{ Turtle t;

  public void paint(Graphics g)
  {
    t = new Turtle(this, 100, 150, 0);
    zeichne();   // Aufruf des Hauptprogramms
  }

  Komplex f(Komplex z, Komplex c)
  { Komplex erg = new Komplex(z);
    erg.multipliziereMit(z);
    erg.addiereDazu(c);
    return erg;
  } // f

  int wieOftGehuepft(Komplex zStart, Komplex c, int max, double radius)
  { Komplex start = new Komplex(zStart);
    Komplex ziel  = new Komplex();
    double betrag = start.betrag();
    int sprungNummer = 1;

    // t.dickPunkt(start.a, start.b, 1);

    while ((sprungNummer <= max) && (betrag < radius))
    {  sprungNummer++;
       ziel.weiseZu(f(start, c));
       //t.dickPunkt(ziel.a, ziel.b, 1);
       t.strecke(start.a, start.b, ziel.a, ziel.b);
       start.weiseZu(ziel);
       betrag = start.betrag();;
    } // end while
    return sprungNummer;
  } // wieOftGehuepft
  
  void zeichne() // Hauptprogramm
  { double xMin = -1.0;
    double xMax =  0.0;
    double yMin = -0.275;
    double yMax =  0.475;
    t.setzeKOS(xMin, xMax, yMin, yMax);
    int sprungAnzahl  = 150; // faellt nicht vom Tisch
    Komplex c         = new Komplex(-0.731, 0.15);
    Komplex flohStart = new Komplex();
    if (wieOftGehuepft(flohStart, c, sprungAnzahl, 2) < sprungAnzahl)
         t.schreibe ("Heruntergefallen!",0,0);
  }  // zeichne

} // class KompFlohhuepfen

