fix: correct tail collision logic in SnakeGame and Snake

This commit is contained in:
Heller
2026-06-17 19:04:32 +00:00
parent 0d9710965c
commit 7330880c96
2 changed files with 9 additions and 5 deletions

View File

@@ -39,14 +39,13 @@ public sealed class SnakeGame
return GameTickResult.GameOver;
var newHead = Snake.PeekNextHead();
var ateFood = newHead == Food.Position;
if (!Board.IsWithinBounds(newHead) || Snake.Occupies(newHead))
if (!Board.IsWithinBounds(newHead) || Snake.Occupies(newHead, excludeTail: !ateFood))
{
IsGameOver = true;
return GameTickResult.GameOver;
}
var ateFood = newHead == Food.Position;
Snake.Move(grow: ateFood);
if (ateFood)