Skip to content

anonymous /Solve.java secret

//TODO
public boolean search(Sudoku puzzle) {
puzzle.constraintPropagation();
if(puzzle.checkContradiction()) return false;
if(puzzle.checkSolved()) return true;
//for cell with fewest candidates, loop over candidates
Cell c = puzzle.getEasiest();
while(c.numCandidates() > 0) {
int candidate = c.getCandidates()[0];
Sudoku s = (Sudoku) puzzle.clone();
s.set(c.getRowNum(), c.getColNum(), candidate);
if(search(s)) {
puzzle = s;
System.out.println(s);
return true;
}
else c.remove(candidate);
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.