#ifndef SUDOKU_H #define SUDOKU_H #include extern int verbose; class sudoku { public: sudoku(); ~sudoku(); void print(void); int set(const int col, const int row, const char num); char get(const int col, const int row); // convert a string of numbers to a sudoku row int str_to_row(const int row, const std::string &str); std::string get_legal_numbers(const int col, const int row); sudoku solve(int &solvable); std::vector solve_all(); int recursion_depth; int guesses; private: std::string get_row_contents(const int row); std::string get_col_contents(const int col); std::string get_block_contents(const int col, const int row); int fill_missing(); void clone_to(sudoku &to); int get_best_guess(int &col, int &row); char table[9][9]; }; #endif