public Direction CalculateDirection(Vector2DWrapper to, Vector2DWrapper from)
        {
            Vector2DWrapper difference = new Vector2DWrapper(to.X - from.X, to.Y - from.Y);
            if (Math.Abs(difference.X) > 2)
                difference.X = -difference.X;

            if (Math.Abs(difference.Y) > 2)
                difference.Y = -difference.Y;

            string xDiff = difference.X == 0 ? "" : difference.X < 0 ? "W" : "E";
            string yDiff = difference.Y == 0 ? "" : difference.Y < 0 ? "N" : "S";
            Debug.WriteLine(yDiff + xDiff + " - " + _directions[yDiff + xDiff]);
            return _directions[yDiff + xDiff];
        }
        public int ConvertBoardPositionToInt(Vector2DWrapper vector2D)
        {
            int number = 0;
            for (int y = 0; y < 20; y++)
            {
                for (int x = 0; x < 20; x++)
                {
                    CellWrapper cell = _game.GetBoard().GetRelativeCellAt(new Vector2DWrapper(x, y));
                    bool reachedEnd = x == vector2D.X && y == vector2D.Y;

                    if (cell.HasTile())
                    {
                        number++;
                    }
                    if (reachedEnd)
                    {
                        return number;
                    }
                }
            }

            if (number == 0)
            {
                throw new Exception("No tiles found before this position, invalid position to relate from");
            }

            return number;
        }