Advertisement
jakmaj97

Untitled

Apr 4th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.17 KB | None | 0 0
  1. public class BackTrackingAlgotrithm {
  2.  
  3.     List<List<Integer>> listOfSolutionLists = new ArrayList<>();
  4.  
  5.     public boolean solveFutoshikiCSP(FutoshikiCSP futoshikiCSP) {
  6.         List<SimpleConstrain> constrains = futoshikiCSP.getSimpleConstrains();
  7.         List<Integer> solutionList = futoshikiCSP.getSolutionList();
  8.         int gameSize = futoshikiCSP.getGameSize();
  9.  
  10.         int fieldIndex = -1;
  11.         boolean isEmpty = true;
  12.  
  13.         for(int i = 0; i < gameSize*gameSize; i++) {
  14.             if(solutionList.get(i) == 0) {
  15.                 fieldIndex = i;
  16.                 isEmpty = false;
  17.                 break;
  18.             }
  19.         }
  20.  
  21.         if (isEmpty)
  22.             return true;
  23.  
  24.         for(int num = 1; num <= gameSize; num++) {
  25.             if(futoshikiCSP.isSafe(fieldIndex, num)) {
  26.                 solutionList.set(fieldIndex, num);
  27.                 if(solveFutoshikiCSP(new FutoshikiCSP(constrains, solutionList, gameSize))) {
  28.                     listOfSolutionLists.add(new ArrayList<>(solutionList));
  29.                 }
  30.                 else
  31.                     solutionList.set(fieldIndex, 0);
  32.             }
  33.         }
  34.  
  35.         return false;
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement