예제 #1
0
    sudoku.naked_twins()
    return sudoku.values

def solve(grid):
    """
    Find the solution to a Sudoku grid.
    Args:
        grid(string): a string representing a sudoku grid.
            Example: '2.............62....1....7...6..8...3...9...7...6..4...4....8....52.............3'
    Returns:
        The dictionary representation of the final sudoku grid. False if no solution exists.
    """
    sudoku = Sudoku(is_diag_sudoku=True, from_string=grid)
    sudoku.solve()
    return sudoku.values

if __name__ == '__main__':
    diag_sudoku_grid = '2.............62....1....7...6..8...3...9...7...6..4...4....8....52.............3'

    sudoku = Sudoku(is_diag_sudoku=True, from_string=diag_sudoku_grid)
    if sudoku.solve() == False:
        print("This sudoku has no solution")
    else:
        sudoku.display()

    try:
        from visualize import visualize_assignments
        visualize_assignments(assignments)
    except:
        print('We could not visualize your board due to a pygame issue. Not a problem! It is not a requirement.')
예제 #2
0
    return search(values)


def find_naked_twins(unit, values):
    result = {}
    suspects = [b for b in unit if len(values[b]) == 2]
    for s in suspects:
        value = values[s]
        if value in result:
            result[value].append(s)
        else:
            result[value] = [s]
    result = dict((k, result[k]) for k in result if len(result[k]) == 2)
    return result


if __name__ == '__main__':
    diag_sudoku_grid = '9.1....8.8.5.7..4.2.4....6...7......5..............83.3..6......9................'  #'2.............62....1....7...6..8...3...9...7...6..4...4....8....52.............3'
    display(solve(diag_sudoku_grid))

    try:
        from visualize import visualize_assignments
        visualize_assignments(assignments)

    except SystemExit:
        pass
    except:
        print(
            'We could not visualize your board due to a pygame issue. Not a problem! It is not a requirement.'
        )