示例#1
0
文件: sudoku.py 项目: shiver/sudoku
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()))