Esempio n. 1
0
        private PossibleMove CheckPath(int x, int y, int xoff, int yoff, BoardClass Board)
        {
            int xcur = x, ycur = y;
            var gaplen = 0;

            for (int steps = 0; steps < 100; steps++)
            {
                xcur += xoff;
                ycur += yoff;

                if (!Board.InBounds(xcur, ycur))
                {
                    return(null);
                }
                var valid = Board.IsWalkable(xcur, ycur);

                if (Board.Tiles[xcur, ycur].Type != CardType.Empty)
                {
                    if (gaplen > 0 && valid)
                    {
                        return new PossibleMove()
                               {
                                   FromX = x, FromY = y, ToX = xcur, ToY = ycur, ScoreValue = Board.Tiles[xcur, ycur].ScoreValue, Card = this, Destination = Board.Tiles[xcur, ycur]
                               }
                    }
                    ;
                    return(null);
                }

                gaplen++;
            }
            return(null);
        }