Hilfe - Hamstersimulator

Scorepion

Komplett-PC-Aufrüster(in)
Hallo,

wie der Titel schon sagt, brauche ich Hilfe bei einer Aufgabe im Hamstersimulator.

Die Aufgabe:
Der Hamster darf in diesem Territorium nur ein Mal am Rand entlanglaufen und sich dann wieder an seinem Startplatz einfinden, mit derselben Blickrichtung wie am Anfang. Es dürfen keine Körner benutzt werden!

Territorium "Leicht": Keine Hindernisse
Territorium "Schwer": Mit Hindernissen
Anhang anzeigen 202991

Bekannte Befehle:

vor();
linksUm();
gib();
nimm();

while (vornFrei()) while (!vornFrei())
while (maulLeer()) ""
while (kornDa()) ""

if
else

int

boolean

for
________________________



Meine Lösung zum Territorium "Leicht":


void main()
{
int x=0; // "x" ist als "0" deklariert
int y=0; // "y" ist als "0" deklariert

while (vornFrei()) // solange vorne frei, ...
{
vor(); // ... geht der Hamster vor und ...
x++; // ... zählt Kacheln.
}

linksUm();

while (vornFrei())
{
vor();
y++;
}

linksUm();

while (x > 0) // solange "x" größer als "0" ist ...
{
vor(); // ... geht der Hamster zurück, indem er ...
x--; // ... runterzählt!
}

linksUm();

while (y > 0)
{
vor();
y--;
}

linksUm();

}
 
Also in einem Labyrinth kommt man ja immer ans Ziel wenn man sich an einer Wand entlang tastet .. in dem Fall kommt man wieder da raus wo man angefangen hat... also brauchst du ja eigentlich so befehle wie nimm und gib garnicht oder?
 
"nimm" und "gib" braucht man in diesem Fall nicht. Wurde sogar vom Lehrer verboten! Und der Script soll bei jedem beliebig großen Territorium funktionieren.
 
Vielleicht solltest du das so machen (ich bin mir aber nicht sicher):

gehe vor, solange rechts nicht frei,
wenn rechts frei: drehe 3x links um
gehe vor, solange rechts nicht frei
.
.
.
.
 
Zurück