AStarBoard AStarSearch(AStarBoard board) { if (board.IsGoal()) { return(board); } else { for (var i = 0; i < board.NumberOfQueens; i++) { if (board.IsSafe(i)) { board.Place(i); var result = AStarSearch(board); if (result != null) { return(result); } board.UnPlace(); } } } return(null); }