1*d578543aSAxel Dörfler /* 2*d578543aSAxel Dörfler * Copyright 2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3*d578543aSAxel Dörfler * Distributed under the terms of the MIT License. 4*d578543aSAxel Dörfler */ 5*d578543aSAxel Dörfler #ifndef SUDOKU_SOLVER_H 6*d578543aSAxel Dörfler #define SUDOKU_SOLVER_H 7*d578543aSAxel Dörfler 8*d578543aSAxel Dörfler 9*d578543aSAxel Dörfler #include <vector> 10*d578543aSAxel Dörfler 11*d578543aSAxel Dörfler #include <SupportDefs.h> 12*d578543aSAxel Dörfler 13*d578543aSAxel Dörfler class SudokuField; 14*d578543aSAxel Dörfler 15*d578543aSAxel Dörfler class SudokuSolver { 16*d578543aSAxel Dörfler public: 17*d578543aSAxel Dörfler SudokuSolver(SudokuField* field); 18*d578543aSAxel Dörfler SudokuSolver(); 19*d578543aSAxel Dörfler ~SudokuSolver(); 20*d578543aSAxel Dörfler 21*d578543aSAxel Dörfler void SetTo(SudokuField* field); 22*d578543aSAxel Dörfler 23*d578543aSAxel Dörfler void ComputeSolutions(); 24*d578543aSAxel Dörfler 25*d578543aSAxel Dörfler uint32 CountSolutions(); 26*d578543aSAxel Dörfler SudokuField* SolutionAt(uint32 index); 27*d578543aSAxel Dörfler 28*d578543aSAxel Dörfler private: 29*d578543aSAxel Dörfler typedef vector<SudokuField*> SudokuList; 30*d578543aSAxel Dörfler 31*d578543aSAxel Dörfler SudokuField* fField; 32*d578543aSAxel Dörfler SudokuList fSolutions; 33*d578543aSAxel Dörfler }; 34*d578543aSAxel Dörfler 35*d578543aSAxel Dörfler #endif // SUDOKU_SOLVER_H 36