Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public int getHeuristicValue(Object state)
        {
            NQueensBoard board = (NQueensBoard)state;

            return(board.getSize() - board.getNumberOfQueensOnBoard());
        }
Esempio n. 3
0
 private bool allQueensPlaced()
 {
     return(board.getNumberOfQueensOnBoard() == board.getSize());
 }