Die Kochsche Schneeflocke setzt sich aus drei identischen Teilen zusammen, die mithilfe einer rekursiven Methode gezeichnet werden können:
Jede Seite der Schneeflocke besteht aus einer Kochkurve.
Eine Kochkurve der Stufe n und Länge l kann mithilfe einer rekursiven Methode mit Turtle-Grafik
zeichneKochkurve(int n, int l)
mit Turtle-Grafik gezeichnet werden.
Hilfe 1: Basisfall
public void zeichneKochkurve(int n, int l) {
if(n==0) {
// Zeichne Strich der Länge l
} else {
// Anderer Fall
}
}
Hilfe 1: Codegerüst
public void zeichneKochkurve(int n, int l) {
if(n==0) {
t.forward(l);
} else {
// Was muss mit n und l geschehen, wenn man eine Stufe weiter hineinzoomt?
n=FIXME
l=FIXME
// Nun müssen drei "kleinere" Kochkurven gezeichnet werden
zeichneKochkurve(n, l);
// Was muss zwischendrin passieren?
FIXME
zeichneKochkurve(n, l);
FIXME
zeichneKochkurve(n, l);
FIXME
zeichneKochkurve(n, l);
}
Hilfe 3: Lösungsvorschlag
public void zeichneKochkurve(int n, int l) {
if(n==0) {
t.forward(l);
} else {
n=n-1;
l=l/3;
zeichneKochkurve(n, l);
t.left(60);
zeichneKochkurve(n, l);
t.right(120);
zeichneKochkurve(n, l);
t.left(60);
zeichneKochkurve(n, l);
}
}