private void MoveShipIfPossible(Model.Data.Vector pos, bool rotate)
        {
            if (rotate)
            {
                _draggedShip.IsHorizontal = !_lastIsHorizontal;
                _draggedShip.Replace(pos - _difference + _difference.Inverted());
                _difference = _difference.Inverted();
            }
            else
            {
                _draggedShip.Replace(pos + _difference);
            }

            if (CollisionDetection(_draggedShip) || (_draggedShip.Coordinates[0].X < 0) || (_draggedShip.Coordinates[0].Y < 0) ||
                (_draggedShip.Coordinates[_draggedShip.Length - 1].X > 9) || (_draggedShip.Coordinates[_draggedShip.Length - 1].Y > 9))
            {
                Logger.Log("Collision detected...");

                _draggedShip.IsHorizontal = _lastIsHorizontal;
                _draggedShip.Replace(_lastPosition);
                if (rotate)
                {
                    _difference = _difference.Inverted();
                }
            }

            _lastIsHorizontal = _draggedShip.IsHorizontal;
            _lastPosition     = _draggedShip.Coordinates[0];
        }