Решатель судоку на основе алгоритма Dancing Links (точное покрытие).
Подробнее...
#include <sudoku_solver.h>
Решатель судоку на основе алгоритма Dancing Links (точное покрытие).
- Параметры шаблона
-
| N | размер стороны судоку (должен быть полным квадратом) |
◆ Board
template<size_t N>
| using SudokuSolver< N >::Board = std::array<std::array<int, N>, N> |
Тип доски: квадратная матрица N×N, 0 обозначает пустую клетку
◆ FixedCell
template<size_t N>
| using SudokuSolver< N >::FixedCell = std::tuple<int, int, int> |
Тип ячейки с фиксированным значением: (строка, столбец, цифра).
◆ SolverError
Ошибки, которые может вернуть метод solve().
| Элементы перечислений |
|---|
| INVALID_CONSTRAINTS | Начальные данные противоречивы
|
| NO_SOLUTION | Решения не существует
|
◆ SudokuSolver() [1/4]
Конструктор от полной доски
- Аргументы
-
| board | начальная доска (0 — пустая клетка) |
◆ SudokuSolver() [2/4]
Конструктор от списка фиксированных клеток
- Аргументы
-
| fixed_cells | список кортежей (row, col, digit) с начальными значениями |
◆ SudokuSolver() [3/4]
◆ SudokuSolver() [4/4]
◆ ~SudokuSolver()
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ solve()
Решает судоку с заданными начальными условиями
- Возвращает
- Если решение найдено — доска Board, иначе SolverError
Объявления и описания членов класса находятся в файле: