public void Move() { var newHead = GetNewHeadCoordinate(); snake.AddBefore(snake.First, newHead); Changes.Enqueue(new SnakeCoordinateChange(newHead, SnakeCoordinateChangeType.Add)); if (gameField.GetDotType(newHead) == DotType.Fruit) { return; } Changes.Enqueue(new SnakeCoordinateChange(snake.Last.Value, SnakeCoordinateChangeType.Remove)); snake.RemoveLast(); }