wie kann ich bei Snake das Food zeichnen es per random auftauchen und dann wieder verschwinden wenn es von der Schlange gegessen wird?

... komplette Frage anzeigen

3 Antworten

indem du dein spielfeld "tabellarisierst" z.b. durch ein array abbildest

und dann mithilfe von math.random und geeigneten werten einen zufälligen punkt auf dem spielfeld bestimmst.

bei diesem musst du dann noch prüfen ob dieser leer ist, oder ein teil der schlange darauf liegt (kannst kein food auf der schlange spawnen).

deinem "food" kannst du z.b. einen boolean wert "gegessen" hinzufügen und sobald der kopf der schlange auf der gleichen position ist wie dein "food" setzt du diesen auf true und wenn er auf true ist lässt du das food verschwinden und spawnst gleichzeitig ein neues zufälliges "food".

Antwort bewerten Vielen Dank für Deine Bewertung

Wie zeichnest du denn bisher deine Schlange? So kannst du logischer Weise auch dein Essen malen. Zufällig Essen erscheinen lassen heißt ja nur, dass dein Essensarray / deine Essensliste in dem Eintrag den du anguckst(oder einem neuen) eine zufällige Position auf dem Feld zugewiesen bekommt.

new Random().nextInt(spielfeldBreite bzw. Höhe)

Verschwinden kann es indem du die Entfernung des Essens vom Schlangenkopf nimmst und sie mit dem Schnappradius vergleichst :) (der Eintrag im Array wird 0 / wird von der Liste entfernt oder irgendwo wird neues Essen gespawnt(einfach die Position des Essens ändern))

Antwort bewerten Vielen Dank für Deine Bewertung

Wenn dein Spielfeld eine 2D Array aus Enums bestehen würde, welche Die Werte: Rand/Schlange/Essen/Frei annehmen könnte, könntest du per:

int essenY = new Random().nextInt(spielbrett.length);
int essenX = new Random().nextInt(spielbrett[0].length);

Koordinaten ermitteln lassen.

Sinnvollerweise würde ich das in einer Schleife verwenden, in der du prüfst ob das Feld nicht anderweitig durch: Schlange oder Rand belegt ist.

Antwort bewerten Vielen Dank für Deine Bewertung