public ArrayList getSuccessors(Object state) { ArrayList successors = new ArrayList(); NQueensBoard board = (NQueensBoard)state; int numQueens = board.getNumberOfQueensOnBoard(); int boardSize = board.getSize(); for (int i = 0; i < boardSize; i++) { if (!(board.isSquareUnderAttack(new XYLocation(numQueens, i)))) { NQueensBoard child = placeQueenAt(numQueens, i, board); successors.Add(new Successor("placeQueenAt " + numQueens + " " + i, child)); } } return(successors); }