import pandas as pd import numpy as np from random import randrange from sudoku import sudoku_grid def load_quiz(df, row): string = df.loc[row]['quizzes'] quiz = list(string) quiz = [int(x) for x in quiz] quiz = np.reshape(quiz, (9, 9)).tolist() return (quiz, string) def sol_to_string(solution): string = np.reshape(solution, [1,81]).tolist() string = [str(x) for x in string[0]] string = ''.join(string) return string df = pd.read_csv('sudoku.csv') with open('solved.csv', 'a+') as f: f.write('quizzes,solutions\n') for row in range(len(df)): # for row in range(100): (quiz, string) = load_quiz(df, row) f.write(f'{string},') sudoku = sudoku_grid(quiz) # print(sudoku) while not sudoku.is_solved(): sudoku.iterate() # print(f'Iteration {sudoku.iteration}') # print(sudoku) solution = sudoku.cleanup() string = sol_to_string(solution) f.write(f'{string}\n') print(f'Sudoku {row} solved!') print(sudoku) del sudoku