Frage von Papierwurst, 73

Hamstersimulator nur 1 korn ablegen? (JAVA)

Wie bekomme ich es hin das der Hamster beim Hamstersimulator nur ein Korn abgibt ? bzw wenn auf einem feld schon ein korn ist das er da nicht nochmal eins legt?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Nijara, 73

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 ,
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();}}
Antwort
von jennylein9967, 65

Läuft bei dir😂

Kommentar von Papierwurst ,

Wenn man einfach keie ahnung hat sollte man nicht kommentieren ._.

Kommentar von Treueste ,

Dann schicke doch einfach den Link dazu, damit man weiß, worum es geht.

http://www.heise.de/download/java-hamster-simulator.html

Kommentar von Papierwurst ,

in der Überschrift steht das es Java ist

Kommentar von MunichsFinestt ,

Ja aber davor nicht :D

Kommentar von Papierwurst ,

ja gut xD

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten