Chess.Data.Piece.Queen.GetValidMoves C# (CSharp) Méthode

GetValidMoves() public méthode

public GetValidMoves ( Square board ) : System.Collections.Generic.IEnumerable
board Chess.Data.Entities.Square
Résultat System.Collections.Generic.IEnumerable
        public override System.Collections.Generic.IEnumerable<Move> GetValidMoves(Square[][] board)
        {
            var legalMoves = new List<Move>();

            if (!CurrentColumn.HasValue || !CurrentRow.HasValue || !Alive) return legalMoves;

            var column = CurrentColumn.Value;
            var row = CurrentRow.Value;

            var endPositions = new List<Tuple<int, int>>();

            GetVerticalMoves(board, column, row, endPositions);
            GetHorizontalMoves(board, row, column, endPositions);
            GetDiagonalMoves(board, row, column, endPositions);

            legalMoves.AddRange(endPositions.Select(p => SetupNewMove(p.Item1, p.Item2)));

            return legalMoves;
        }