Chess.Data.Entities.ChessPiece.GetDiagonalMoves C# (CSharp) Method

GetDiagonalMoves() protected method

protected GetDiagonalMoves ( Square board, int row, int column, int>.List endPositions ) : void
board Square
row int
column int
endPositions int>.List
return void
        protected void GetDiagonalMoves(Square[][] board, int row, int column, List<Tuple<int, int>> endPositions)
        {
            for (var r = row; r < 8; r++)
            {
                ChessPiece occupant;
                for (var c = column; c < 8; c++)
                {
                    occupant = board[r][c].ChessPiece;
                    if (occupant != null && occupant.Team == Team) break;
                    endPositions.Add(new Tuple<int, int>(r, c));
                    if (occupant != null && occupant.Team != Team) break;
                }
                for (var c = column; c >= 0; c--)
                {
                    occupant = board[r][c].ChessPiece;
                    if (occupant != null && occupant.Team == Team) break;
                    endPositions.Add(new Tuple<int, int>(r, c));
                    if (occupant != null && occupant.Team != Team) break;
                }
            }
        }