Frage zu einer Java Hamster Aufgabe?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Der Hamster kann doch prüfen, ob vor ihm eine Wand ist oder nicht (vornFrei). Er braucht nur so oft nach vorn gehen, bis er auf eine Wand (also das Ende des Spielfelds) trifft.

Bei jedem Schritt muss er so oft ein Korn abgeben, bis zwei Körner auf dem jeweiligen Feld liegen.

Vergleiche noch einmal mit den dir gelehrten Werkzeugen, welche dafür am besten passen.

weristda12221 
Fragesteller
 13.09.2020, 16:35

es geht nur um eine zeile von blöcken alse eine reihe die quer ist

0
weristda12221 
Fragesteller
 13.09.2020, 16:37
@regex9

Oh ja, tut mir leid, Ich hab das so schon gemacht, mein Problem ist, dass ich es nicht hinkrige dass er nach jedem gelaufenen Feld die doppelte Anzahl Körner legt.

0
regex9  13.09.2020, 16:41
@weristda12221

Deinem Kommentar unter der anderen Antwort zu Folge scheint es doch anders zu sein, als oben geschildert und auf den Feldern können initial doch mehr als ein Korn schon bereitliegen?

Lasse den Hamster dann doch erst einmal zählen, wie viele Körner auf dem Feld sind, in dem er so lange Körner vom Feld aufnimmt, bis es keine mehr auf dem Feld gibt. Die Zahl kann er folgend verdoppeln (anzahl + anzahl) und danach damit beginnen so lange auch Körner abzugeben.

0
weristda12221 
Fragesteller
 13.09.2020, 16:43
@regex9

"Hamster läuft in seiner Welt gerade aus und legt auf jede Kachel die er besucht die doppelte Anzahl an Körner der vorherigen Kachel."

Es liegen vorher keine Körner auf dem Feld, tut mir leid falls ich es schlecht fomuliert haben sollte.

0
regex9  13.09.2020, 16:49
@weristda12221

Ah, ich habe es falsch gelesen. Ist doch aber noch einfacher. Zunächst muss lediglich bestimmt werden, mit wie vielen Körnern es denn beginnt. Entweder mit 1 oder du musst vom ersten Feld die Körneranzahl ermitteln (zählen, wie eben geschildert). Diese Anzahl merkst du dir und verdoppelst sie mit jedem Schritt, den der Hamster tut. So viele Körner, wie er sich gerade gemerkt hat, müssen dann auf dem jeweiligen Feld auch abgelegt werden.

0
weristda12221 
Fragesteller
 13.09.2020, 17:41
@weristda12221

Ich habe noch eine Frage, und zwar habe ich eine Variabele deklariert und bei jedem schritt nach vorne mit 2 multipliziert, ich weiß jetzt leider nicht wie ich den hamster dazu bekomme die Körner zu legen.

0
weristda12221 
Fragesteller
 13.09.2020, 17:47
@regex9

Ich habe es so verwendt, und eine zweite variabele definiert, wobei der unterschied zur ersten immermal 2 ist. dann habe ich eine while schleife mit dieser bedienung gemacht, damit gib() solange läuft bis der unterschied ausgeglichen ist.

Bedauerlicherweise konnte ich dies nicht umsetzen.

0
regex9  13.09.2020, 17:57
@weristda12221

Pseudocode:

while zuGebendeKoerner > 0:
  gib()
  zuGebendeKoerner = zuGebendeKoerner - 1

Wobei zuGebendeKoerner der doppelten Anzahl an Körnern vom letzten Feld entspricht.

1

Hallo,

ohne einen Code oder eventuell die genaue Aufgabenstellung kann ich dir nicht helfen. Ergänze es, und wir sehen was sich machen lässt :)

Mit freundlichen Grüßen

Woher ich das weiß:eigene Erfahrung
weristda12221 
Fragesteller
 13.09.2020, 16:33

"Aufgabe II•Hamster läuft in seiner Welt gerade aus und legt auf jede Kachel die er besucht die doppelte Anzahl an Körner der vorherigen Kachel. Er beginnt mit einem Korn.Das Feld kann beliebig groß sein

0