// Prog:HadornStefan
// Title: coffeebeans
// Author: S.Hadorn Group N
// Informatics: Series 11 Challenge Task
// Draw turtle graphics for the Lindenmayer system with
// production F -> F-F--F---, initial word F+F+F+F+F+F and
// rotation angle + == 30 degrees, - == 45 degrees.
#include
#include
// POST: the word w_i^F is drawn
void f (const unsigned int i) {
if (i == 0)
ifm::forward(); // F
else {
f(i-1); // w_{i-1}^F
ifm::right(45); // -
ifm::forward();
f(i-1); // w_{i-1}^F
ifm::left(90); // --
ifm::save(); // save point
f(i-1); // w_{i-1}^F
ifm::restore(); // jump back
ifm::right(135); // ---
}
}
int main () {
std::cout << "Number of iterations =? ";
unsigned int n;
std::cin >> n;
// draw w_n = w_n^F + w_n^F + w_n^F + w_n^F + w_n^F + w_n^F
f(n); // w_n^F
ifm::right(30); // +
f(n); // w_n^F
ifm::right(30); // +
f(n); // w_n^F
ifm::right(30); // +
f(n); // w_n^F
ifm::right(30); // +
f(n); // w_n^F
ifm::right(30); // +
f(n); // w_n^F
return 0;
}