public static bool PlaceQueens(Chessboard board = null, int column = 0) { board = board ?? new ChessBoard(); for (int row = 1; row <= 8; row++) { board.Board[column] = row; if (board.IsSafe()) { if (column == 7) { return(true); //Success } else { var newBoard = new ChessBoard(board); if (PlaceQueens(newBoard, column + 1)) { return(true); } else { continue; } } } } return(false); }