Der Hamster, der genau ein Korn in seinem Maul hat, befindet sich in einem geschlossenen, körnerlosen Raum unbekannter Größe. Rechts von ihm befindet sich eine Wand und vor ihm die Kachel ist frei. Der Hamster soll solange gegen den Uhrzeigersinn an der Wand entlanglaufen, bis er irgendwann wieder seine Ausgangskachel erreicht. Testen Sie Ihr Programm auch mit anderen Territorien.
Also, ich habe versucht, den Hamster durch alle Kacheln laufen zu lassen, kriegte aber einen Fehler. Wenn er entlang der Wand läuft, verpasst er zwei Kacheln, die nicht gegen die Wand sind.
Kann jemand mir bitte helfen, wie ich diese verbessern kann?

void main() {
while (!kornDa() ) {
while ( !rechtsFrei() ) {
if (vornFrei() ) {
vor();
}
else linksUm();
}
while (rechtsFrei() ) {
if (vornFrei() ) {
vor();
}
}
}
}
boolean rechtsFrei() {
rechtsUm();
if (vornFrei() ) {
vor();
return true;
}
else linksUm();
return false;
}
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
void kehrt() {
linksUm();
linksUm();
}
Also, ich habe versucht, den Hamster durch alle Kacheln laufen zu lassen, kriegte aber einen Fehler. Wenn er entlang der Wand läuft, verpasst er zwei Kacheln, die nicht gegen die Wand sind.
Kann jemand mir bitte helfen, wie ich diese verbessern kann?

void main() {
while (!kornDa() ) {
while ( !rechtsFrei() ) {
if (vornFrei() ) {
vor();
}
else linksUm();
}
while (rechtsFrei() ) {
if (vornFrei() ) {
vor();
}
}
}
}
boolean rechtsFrei() {
rechtsUm();
if (vornFrei() ) {
vor();
return true;
}
else linksUm();
return false;
}
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
void kehrt() {
linksUm();
linksUm();
}