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