#!/usr/bin/python3 """This is a Sudoku Solver.""" from board import Board def main(): """Provided a string representing a Sudoku game, solve it.""" string = ( ".....6...\n" "..2.35.8.\n" "....2..13\n" ".2....19.\n" "93....7..\n" "5....4...\n" "1......7.\n" ".7...142.\n" ".9.4.3...\n" ) iterations = 0 while '.' in string: iterations += 1 new_string = iterate_board(string, debug=True) assert new_string != string string = new_string print(f"Solved in {iterations} iterations.") def iterate_board(string, debug=False): """This function consists of one iteration through the solving process. Return an updated string. """ board = Board(string, debug=debug) iterations = 0 while '.' in string: iterations += 1 print(board) board.compute_possible_values() board.compute_obligated_in_each_line() board.compute_obligated_in_each_column() print(board) board.update_board() if __name__ == '__main__': main()