Hamstersimulator nur 1 korn ablegen? (JAVA)

... komplette Frage anzeigen

1 Antwort

Am besten ist es, wenn du Variabeln für die Körner um Maul und für die Körner auf dem Feld hast ;)
Wenn du dann auf einem Feld bist, wo noch kein Korn liegt, ziehst du einfache eins vom Maul ab und addierst dieses bei dem Feld dazu.
Vorher kannst du dann prüfen, ob auf dem Feld schon ein Korn liegt und dementsprechend handeln.
Hast du schon angefangen mit dem Code? Daran kann man sowas meistens besser erklären, als ohne.

Ich hatte das damals so implementiert:
if(maulLeer({
return;
}
hamsterAnzahlAnKoernernImMaul--;
static void gib() {if (maulLeer()) {return;}hamsterAnzahlAnKoernernImMaul--;kacheln[hamsterReihe][hamsterSpalte]++;}++;

Also ich habe erst geguckt, ob der Hamster überhaupt Körner im Maul hat, wenn nicht, dann kann er auch keine ablegen.
Wenn doch dann wurde aus dem Maul eben ein subtrahiert und auf dem Feld eines addiert. Das Feld hatte ich bei mir als zweidimensionalen Array implementiert.
Du kannst dann noch ne abfrage dazu machen, ob auf dem Feld schon ein Korn liegt, also
if(kacheln[hamsterReihe][hamsterSpalte] == 0)

Je nachdem wie deine Variabeln so heißen ;)
Ich hoffe ich konnte dir ein wenig helfen, aber wie gesagt. Das ist schwer ohne deinen Code zu kennen, da es viele Möglichkeiten gibt.

Kommentar von Papierwurst
27.11.2015, 10:59
void main() {final int GESAMTBREITE = 14;final int GESAMTHOEHE = 10;int felderInBreiteZuGehen = GESAMTBREITE - 1;int felderInHoeheZuGehen = GESAMTHOEHE - 1;while ( felderInBreiteZuGehen > 0 ) {geheFelderNachVorn(felderInBreiteZuGehen);rechtsUm();geheFelderNachVorn(felderInHoeheZuGehen);rechtsUm(); gib();vor();}felderInBreiteZuGehen = felderInBreiteZuGehen - 1;felderInHoeheZuGehen = felderInHoeheZuGehen -1;}void rechtsUm () {for(int i=0; i < 3; i++) {linksUm();}}void geheFelderNachVorn (int anzahlSchritte) {for (int i=0; i < anzahlSchritte; i++) {gib();vor();}}
0

Was möchtest Du wissen?