// Informatik - Serie 11 - Challenge 125
// Program: ReshadEmanuel.cpp
// Author: Emanuel Reshad
#include
#include
// POST: Thriller
void f (const unsigned int i) {
if (i == 0)
{
ifm::forward(); // F
ifm::save();
ifm::forward(); // F
ifm::right(5); // +
ifm::restore();
}
else
{
f(i-1); // w_{i-1}^F
ifm::save(); // w_{i-1}^F
f(i-1); // w_{i-1}^F
ifm::left(30); // -
f(i-1); // w_{i-1}^F
ifm::forward(10);// F
f(i-1); // w_{i-1}^F
ifm::left(30); // +
f(i-1); // w_{i-1}^F
ifm::forward(10);// F
f(i-1); // w_{i-1}^F
ifm::left(30); // -
f(i-1); // w_{i-1}^F
ifm::restore();
}
}
// POST: Treppe
void g (const unsigned int i) {
if (i == 0)
{
ifm::forward(); // F
}
else
{
g(i-1); // w_{i-1}^F
ifm::save();
g(i-1); // w_{i-1}^F
ifm::left(30); // -
g(i-1); // w_{i-1}^F
ifm::forward(10);// F
g(i-1); // w_{i-1}^F
ifm::left(30); // -
g(i-1); // w_{i-1}^F
ifm::forward(10);// F
g(i-1); // w_{i-1}^F
ifm::left(30); // -
g(i-1); // w_{i-1}^F
ifm::restore();
}
}
int main () {
std::cout << "Number of iterations =? Choose n = 3!!";
unsigned int n;
std::cin >> n;
// draw w_n = w_n^F-w_n^F-w_n^F
for(unsigned int i=1; i < 7;++i)
{
f(n);
ifm::left(60); // -
f(n); // w_n^F
ifm::left(60); // -
f(n); // w_n^F
ifm::left(60); // -
f(n); // w_n^F
ifm::left(60); // -
f(n); // w_n^F
ifm::left(60); // -
f(n); // w_n^F
ifm::left(60); // -
f(n); // w_n^F
ifm::right(60); // -
ifm::forward(80); // F
}
for(unsigned int i=1; i < 7;++i) // draw 6 rotated thriller
{
ifm::left(30);
ifm::forward(80);
g(n);
ifm::right(30); // +
g(n); // w_n^F
ifm::forward(30); // F
g(n); // w_n^F
}
return 0;
}