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

@@ -55,8 +55,13 @@ public sealed class Snake
return newHead;
}
public bool Occupies(Position position) =>
_segments.Contains(position);
public bool Occupies(Position position, bool excludeTail = false)
{
if (excludeTail && _segments.Last is { } last && last.Value == position)
return false;
return _segments.Contains(position);
}
private static Position DirectionToOffset(Direction direction) =>
direction switch