Advertisement
rafikamal

Untitled

May 29th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.80 KB | None | 0 0
  1. private void csp() {
  2.         Integer v = getNextUnvisitedVariable();
  3.         if (v == null)  {
  4.             // No unassigned variables, found a solution
  5.             solutions.add(Arrays.copyOf(assignments, assignments.length));
  6.            
  7.             for (int i = 0; i < N; i++)
  8.                 assert(isAssignmentValid(i, assignments[i]));
  9.         }
  10.         else {
  11.             visitedVariables[v] = true;
  12.            
  13.             for (int i = 0; i < N; i++) {
  14.                 if (isAssignmentValid(v, i)) {
  15.                     board[v][i] = BlockType.Q;
  16.                     assignments[v] = i;
  17.                     List<BoardPosition> conflictedPositions = markConflictedPositions(v, i);
  18.                     boolean shouldContinue = forwardChecking();
  19.                     if (shouldContinue)
  20.                         csp();
  21.                     unmarkConflictedPositions(conflictedPositions);
  22.                     assignments[v] = null;
  23.                     board[v][i] = BlockType.None;
  24.                 }
  25.             }
  26.            
  27.             visitedVariables[v] = false;
  28.         }
  29.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement