fix: correct tail collision logic in SnakeGame and Snake
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user