Mal der Auszug aus deinem Code + ein Kommentar:
Delphi-Quellcode:
if Direction = sUp then
schlange[0].Y:= schlange[0].Y - 1
else if Direction = sDown then
schlange[0].Y:= schlange[0].Y + 1
else if Direction = sLeft then
schlange[0].X:= schlange[0].X - 1
else if Direction = sRight then
schlange[0].X:= schlange[0].X + 1
// ▼ da ist der Fehler
else if Karte[schlange[0].X, schlange[0].y] = Wand then
begin
GameOver;
exit;
end;
Begründung... du gehst entweder in eine der 4 Richtungen ODER prüfst auf Wand einschlag... und eine der 4 Richtungen hat da immer Vorrang