logger = logging.getLogger('sudoku') logging.basicConfig(level=logging.INFO) board = Board() board.boardFromString(HARD_STRING) logger.info('\n' + boardToString(board)) easySolver = EasySolver(board) assigned = -1 while assigned != 0: if easySolver.getAvailableMap().getUnassigned() == 0: break assigned = 0 assignedNakedSingles = 0 assignedHiddenSingles = 0 assignedNakedSingles += easySolver.assignNakedSingles() logger.info('Found ' + str(assignedNakedSingles) + ' naked singles') assignedHiddenSingles = easySolver.assignHiddenSingles() logger.info('Found ' + str(assignedNakedSingles) + ' hidden singles') assignedLockedCandidates1 = easySolver.assignLockedCandidates1() logger.info('Found ' + str(assignedLockedCandidates1) + ' locked candidates') assigned += assignedNakedSingles assigned += assignedHiddenSingles assigned += assignedLockedCandidates1 logger.info('\n' + boardToString(easySolver.getBoard()))