// Info - Serie 11 - Challange
// Programm: MarjanovicPetar.cpp
// Autor: Petar Marjanovic
#include
#include
void b (const unsigned int i);
void f (const unsigned int i) {
if (i == 0)
ifm::forward();
else {
f(i-1);
f(i-1);
b(i-1);
ifm::left(45);
ifm::save(); // speichert position
ifm::left(45);
f(i-1);
ifm::right(45);
f(i-1);
ifm::right(45);
f(i-1);
ifm::restore(); // laedt gespeicherte position
ifm::right(45);
ifm::save();
ifm::right(45);
f(i-1);
ifm::left(45);
f(i-1);
ifm::left(45);
f(i-1);
ifm::restore(); }
}
void b (const unsigned int i) {
if (i == 0)
ifm::forward();
else {
b(i-1);
b(i-1);
f(i-1);
ifm::right(45);
ifm::save();
ifm::right(45);
b(i-1);
ifm::left(45);
b(i-1);
ifm::left(45);
b(i-1);
ifm::restore();
ifm::left(45);
ifm::save();
ifm::left(45);
ifm::right(45);
ifm::right(45);
ifm::restore();
}
}
int first () {
// std::cout << "Number of iterations =? ";
unsigned int n=5 ;
// std::cin >> n;
ifm::save();
f(n); // w_n^F
ifm::restore();
ifm::left(60); // loook up
f(n); // w_n^F
return 0;
}
int second () {
// std::cout << "Number of iterations =? ";
unsigned int n=5;
// std::cin >> n;
ifm::save();
ifm::left(120);
f(n);
return 0;
}
int second_last() {
ifm::save();
first();
ifm::restore();
second();
return 0;
}
int main() {
ifm::save();
second_last();
ifm::restore();
ifm::left(180);
second_last();
return 0;
}