Hallo zusammen,
in dieser Aufgabe muss der Hamster der Kornspur folgen, nachdem er an die Wand kracht, muss der Hamster mithilfe der Rekursion zurück zur Startposition und dabei alle Körner zurücklegen, wo sie mal waren.
Ich habe mehrere male probiert, aber bin trotzdem gescheitert. 👃
Hat jemand irgendwelche Tipps?
Vielen Dank!
in dieser Aufgabe muss der Hamster der Kornspur folgen, nachdem er an die Wand kracht, muss der Hamster mithilfe der Rekursion zurück zur Startposition und dabei alle Körner zurücklegen, wo sie mal waren.
Ich habe mehrere male probiert, aber bin trotzdem gescheitert. 👃
Hat jemand irgendwelche Tipps?
Vielen Dank!
Java:
void HinUndZurück() {
if (vornFrei()) {
vor();
nimmKorn();
HinUndZurück();
//?
} else {
umdrehen();
}
}
void istKornDa() {
if (kornDa()) {
nimm();
}
}
void nimmKorn() {
if (kornDa()) {
nimm();
} else {
umdrehen();
vor();
umdrehen();
sucheKorn();
istKornDa();
}
}
void sucheUnten() {
if (!kornDa()) {
umdrehen();
if (vornFrei()) {
vor();
if (!kornDa()) {
zurückGehen();
}
} else {
umdrehen();
}
}
}
void sucheOben() {
if (!kornDa()) {
if (vornFrei()) {
vor();
if (!kornDa()) {
zurückGehen();
umdrehen();
}
}
}
}
void sucheRechts() {
if (!kornDa()) {
rechtsUm();
if (vornFrei()) {
vor();
if (!kornDa()) {
zurückGehen();
rechtsUm();
}
} else {
linksUm();
}
}
}
void sucheLinks() {
if (!kornDa()) {
linksUm();
if (vornFrei()) {
vor();
if (!kornDa()) {
zurückGehen();
linksUm();
}
} else {
rechtsUm();
}
}
}
void umdrehen() {
linksUm();
linksUm();
}
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
void zurückGehen() {
umdrehen();
vor();
}
void sucheKorn() {
sucheOben();
sucheRechts();
sucheUnten();
sucheLinks();
}
void main() {
HinUndZurück();
}