Ejemplo n.º 1
0
EASY_STRING = '79....3.......69..8...3..76.....5..2..54187..4..7.....61..9...8..23.......9....54'

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()))