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.')
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.' )