Chess.Data.Piece.Knight.GetValidMoves C# (CSharp) Метод

GetValidMoves() публичный Метод

public GetValidMoves ( Square board ) : IEnumerable
board Chess.Data.Entities.Square
Результат IEnumerable
        public override 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 possibleEndPositions = PossibleEndPositions(column, row);

            foreach (var position in possibleEndPositions)
            {
                var newRow = position.Row;
                var newColumn = position.Column;

                if (EndPositionIsWithinBounds(newRow, newColumn))
                {
                    var occupant = board[newRow][newColumn].ChessPiece;

                    if (occupant == null || occupant.Team != Team)
                        legalMoves.Add(SetupNewMove(newRow, newColumn));
                }
            }

            return legalMoves;
        }