Wird das Programm überhaupt sauber kompiliert?
Ich sehe da schon 2 Fehler.
Z.B. hier:
else if(taste == links && richtung != 3 || taste == plinks && richtung != 3)
else { continue; }
Nach dem else if muss eine Anweisung folgen, stattdessen kommt bei dir direkt das else.
"punkte" ist auch nicht deklariert.
Generell würde ich bei einem Snake-Spiel mit Koordinaten und Richtungen arbeiten, dann kannst du nämlich auch Items an Positionen spawnen lassen (die Schlange frisst ja). Du brauchst:
- ein Koordinatensystem (z.B. 100x80)
- eine Variable für die aktuelle Richtung
- einen Intervall
- einen Kopf für die Schlange
- Koordinaten für jedes Körperteil (Array)
Der Körper verlängert sich ja mit der Anzahl der gefressenen Items, jedes Körperteil nimmt bei jedem Step die Position seines Vorgängers ein. So kannst du auch die Position jedes Körperteils zu jederzeit herausfinden. Wenn der Schlangenkopf versucht, die Position eines Körperteils einzunehmen, ist Game over.
Und du musst natürlich verhindern, dass man die Richtung um 180 grad ändern kann (also wenn man sich nach oben bewegt, kann man nicht auf "nach unten" wechseln).