def solver(self,puzzle,algorithm): """ This method uses the algorithm specified to solve the game """ if(algorithm =="recursive"): board = sudokustr.SudokuStr(puzzle) if(board.verify_string_to_sudoku()): self.original = board.get_str() puzzle = board.get_str() recursivesk = recursive.Recursive(puzzle) self.solution=recursivesk.solve_one_sudoku() self.solve_time = recursivesk.get_time() print(self.human_string(self.solution)) print self.solve_time elif (algorithm =="peter"): board = sudokustr.SudokuStr(puzzle) if(board.verify_string_to_sudoku()): self.original = board.get_str() puzzle = board.get_str() petersk = peter_algorithm.Peter_algorithm() self.solution = petersk.get_game_solution (puzzle) self.solve_time = petersk.get_time() print(self.human_string(self.solution)) print self.solve_time elif (algorithm =="bactracking"): """ This implements the backtrack algorithm in order to solve the game """ board = sudokustr.SudokuStr(puzzle) if(board.verify_string_to_sudoku()): self.original = board.get_str() puzzle = board.get_str() bactrack = Resolve(puzzle) sudoku_matrix = bactrack.convert_str_to_matrix(puzzle, 9, 9) self.execute = bactrack.resolve(sudoku_matrix) self.solution = bactrack.get_solve_game() self.solve_time = bactrack.get_time() print(self.human_string(self.solution)) print self.solve_time else: print ("Other algorithm")