// Informatik - Serie 11 - Skript-Aufgabe 127
// Programm: SpaeteChristian.cpp
// Autor: SpŠte Christian
#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 () {
unsigned int n=5;
ifm::save();
f(n); // w_n^F
ifm::restore();
ifm::left(60); // loook up
f(n); // w_n^F
return n;
}
int second () {
unsigned int n=5;
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;
}