private Square[] SetRayPatterns(Square square, int rankDiff, int fileDiff) { var pattern = Piece.GetSquareRayIndexes(square.Index, rankDiff, fileDiff); var squares = new Square[pattern.Length]; for (int j = 0; j < pattern.Length; j++) { squares[j] = Squares[pattern[j]]; } return(squares); }