Hamster Simulator Aufgabenhilfe

m1602

Mitglied
Hallo, Ich bin Programmieranfänger und bräuchte Hilfe bei einer Aufgabe bei dem Hamster Simulator. Die Aufgabe hab ich im Anhang. Danke im Vorraus
 

Anhänge

  • Screenshot_20221229_102441_Adobe Acrobat.jpg
    Screenshot_20221229_102441_Adobe Acrobat.jpg
    234,7 KB · Aufrufe: 5

temi

Top Contributor
Und wo ist dein Versuch einer Lösung? Hast du Fragen oder kommst du nicht weiter? Wir machen hier keine Hausaufgaben, dass musst du schon selbst tun.
 

KonradN

Super-Moderator
Mitarbeiter
An welcher Stelle hast Du denn genau ein Problem?Die Aufgabe hin klatschen wird Dir aller Voraussicht nach nicht die Hilfe bringen, die Du suchst.

Bei so Aufgaben: Kannst Du den Hamster denn entsprechend steuern? Sprich: Beschreibe in Worten, was genau er machen muss.

Und laut Aufgabe habt ihr ja schon eine vergleichbare Aufgabe gehabt. Wie wurde diese Aufgabe gelöst? Ich tippe auf eine rekursive Lösung aber das sind alles Geheimnisse, die Du uns nicht verraten hast.

Wenn Du die andere Aufgabe verstanden hast, dann sollte es möglich sein, die Lösung zu adaptieren:
  • Aus dem Code, der bis zu dem Berg geht, musst Du dann Code machen, der bis zu der Senke geht.
  • Bei der Rekursion musst Du dann schauen:
--- was ist die neue Abbruchbedingung der Rekursion ("Wann musste der Hamster aufhören, den Berg hoch zu klettern?" wird zu "Wann muss der Hamster aufhören, die Senke hinab zu steigen?"
--- Aus dem Code "Steige Stufe hinauf" wird Code "Steige Stufe hinab"
--- Nach dem Rekursiven Aufruf kommt dann statt "Steige Stufe hinab" ein "Steige Stufe hinauf"

An der Beschreibung kann man erkennen: ggf. ist der Code sogar 1:1 weiter verwendbar. Wenn ihr also mit Methoden gearbeitet haben solltest, wird da vermutlich etwas wieder verwendet werden können.
 

m1602

Mitglied
Also mein Ansatz ist im Anhang nur das Problem ist,dass der Hamster ganz unten in der Mulde stehen bleibt
 

Anhänge

  • Bild_2022-12-29_155040323.png
    Bild_2022-12-29_155040323.png
    8,4 KB · Aufrufe: 6

temi

Top Contributor
Code bitte nicht als Screenshot einfügen, sondern die Code-Tags verwenden: Das </> Symbol ganz links im Editor.
 

KonradN

Super-Moderator
Mitarbeiter
Ehe man Code schreibt sollte man den Algorithmus erst einmal in Worten beschreiben. Die Umsetzung in Code kommt immer als zweiter Schritt.

Und in der Aufgabe wurde auf die vorherige Aufgabe verwiesen - wie sah es denn da aus?

Und dann noch die Bitte: Code bitte immer in Code-Tags posten. Dazu dient der Knopf </> links oberhalb des Eingabebereichs!
 

m1602

Mitglied
Und wo ist dein Versuch einer Lösung? Hast du Fragen oder kommst du nicht weiter? Wir machen hier keine Hausaufgaben, dass musst du schon selbst tun.
Also mein Ansatz ist im Anhang nur das Problem ist,dass der Hamster ganz unten in der Mulde stehen bleibt
 

Anhänge

  • Screenshot_20221229_155158_Gmail.jpg
    Screenshot_20221229_155158_Gmail.jpg
    131 KB · Aufrufe: 1

m1602

Mitglied
Ehe man Code schreibt sollte man den Algorithmus erst einmal in Worten beschreiben. Die Umsetzung in Code kommt immer als zweiter Schritt.

Und in der Aufgabe wurde auf die vorherige Aufgabe verwiesen - wie sah es denn da aus?

Und dann noch die Bitte: Code bitte immer in Code-Tags posten. Dazu dient der Knopf </> links oberhalb des Eingabebereichs!
Haben leider nur diese Aufgabe bekommen. Ich weiß nicht wie die Aufgabe davor aussieht.
 

KonradN

Super-Moderator
Mitarbeiter
Nun gut, dann habt ihr Aufgabe 3 nicht vorher gemacht. Aber das ändert nichts am Vorgehen:

Beschreibe einmal, was der Hamster machen müsste.

Also immer erst den Algorithmus beschreiben! Code kann man erst schreiben, wenn der Algorithmus klar ist!
 

temi

Top Contributor
Überleg dir mal, was es bedeutet ganz unten in der Mulde zu stehen. Wo ist dann frei? Wohin kann der Hamster gehen?

Letztlich ist es immer der selbe Ablauf: Ist er schon ganz unten? Nein. Dann eine Stufe runter.

Mit diesen Hilfen solltest du den Algorithmus beschreiben können.
 

m1602

Mitglied
Überleg dir mal, was es bedeutet ganz unten in der Mulde zu stehen. Wo ist dann frei? Wohin kann der Hamster gehen?

Letztlich ist es immer der selbe Ablauf: Ist er schon ganz unten? Nein. Dann eine Stufe runter.

Mit diesen Hilfen solltest du den Algorithmus beschreiben können.
Das Problem ist halt,dass der Loop immer weiter geht und quasi noch weiter nach unten möchte. Wie kann ich das stoppen?
 

temi

Top Contributor
Wie kann ich das stoppen?
Überleg dir mal, was es bedeutet ganz unten in der Mulde zu stehen. Wo ist dann frei? Wohin kann der Hamster gehen?
Die Schleife muss beendet werden, wenn du unten bist. Aktuell hast du eine Endlosschleife. Ich kenne den Hamstersimulator nicht, aber man kann vermutlich einen Rückgabewert bei Methoden haben, der anzeigt, dass man unten ist und den dann für das Ende der Schleife verwenden.

Du könntest z. B. eine Methode "istUnten()" haben und als Schleifenbedingung verwenden.
Java:
while(!istUnten()) {
    //..
}
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Ich habe es bereits einmal gesagt: Vergiss den Code! Beschreibe den Algorithmus doch erst einmal. Alles Basteln am Code ohne ein klares Verständnis vom Algorithmus ist ein sinnloses herumprobieren.

Und ich verstehe auch nicht, wo das Problem ist, das zu beschreiben. Alles, was man braucht, ist das erste Bild aus Deinem ersten Post.

Was muss der Hamster machen?
a) Er muss bis zur ersten Stufe gehen
b) So lange er auf einer Stufe nach unten steht:
b.1) Gehe Stufe herunter.
c) So lange er vor einer Stufe steht:
c.1) Gehe Stufe herauf.
d) gehe bis zur Ausgangsposition zurück

Jetzt haben wir das komplexe Problem in Teilschritte unterteilt. Jetzt können wir jedes Teilproblem betrachten.

Wie kann man bis zur ersten Stufe gehen? Der Hamster hat ja nur wenige Befehle. Damit muss man das zusammen bauen:
  • Schritt vor
  • Drehe rechts
  • Wenn vorne NICHT frei ist, dann drehen wir wieder nach links und wissen: Wir sind einen Schritt vor gegangen und haben noch Boden unter uns. Damit können wir wieder vorne anfangen.
  • Wenn vorne frei ist, dann sind wir über der Stufe nach unten. Das wollen wir aber noch nicht, denn wir wollten nur bis zur ersten Stufe gehen. Daher gehen wir einen Schritt zurück:
Rechts, vor, rechts, rechts
==>Fertig. Wir stehen nun vor der Stufe.

Genau so kann man nun die Stufe herunter gehen: Wie kann man das prüfen?

Wenn Du das im Kopf nicht durchspielen willst, dann mach es mit Stift und Papier. Mal auf einen Zettel dieses erste Bild. Und dann nimm irgend etwas, das der Hamster ist. Das kannst Du dann bewegen und drehen. So kannst Du alles durchspielen!

Und wenn Du Probleme hast, das durchzuspielen, dann übe es. Das ist der erste wichtige Schritt. Vorher mit Code herum zu spielen wird Dich nicht weiter bringen!
 

Ähnliche Java Themen

Neue Themen


Oben