RahimHakimov / SudokuSolver

Sudoku Solver using Backtracking Recursion

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SudokuSolver

Sudoku Solver using Backtracking Recursion.

Sample without logging

Пожалуйста введите доску Судоку(9 строк), 
каждая строка должна состоять из 9 символов, 
каждый из которых должен соответствовать '.', если эта клетка пуста,
либо число от 1 до 9 включительно.
(между символами не нужно ставить никаких символов)
53..7....
6..195...
.98....6.
8...6...3
4..8.3..1
7...2...6
.6....28.
...419..5
....8..79
Хотите, чтобы выводилось состояние доски на каждом шаге?
(0 - нет
1 - да)
0
===============================
Результат:
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|286|179
____________

Sample with logging

Пожалуйста введите доску Судоку(9 строк), 
каждая строка должна состоять из 9 символов, 
каждый из которых должен соответствовать '.', если эта клетка пуста,
либо число от 1 до 9 включительно.
(между символами не нужно ставить никаких символов)
53..7....
6..195...
.98....6.
8...6...3
4..8.3..1
7...2...6
.6....28.
...419..5
....8..79
Хотите, чтобы выводилось состояние доски на каждом шаге?
(0 - нет
1 - да)
1
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 5 5
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|4..|853|..1
|7..|.2.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 5 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|42.|853|..1
|7..|.2.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 5 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 9
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|42.|853|.91
|7..|.2.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 5 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 6
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|426|853|.91
|7..|.2.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 5 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|426|853|791
|7..|.2.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 9
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|.6.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|...|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 5
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|53.|.7.|...
|6..|195|...
|.98|...|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 5
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|53.|.7.|...
|6..|195|...
|.98|.4.|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|53.|.7.|...
|6..|195|...
|.98|.42|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 6
|53.|67.|...
|6..|195|...
|.98|.42|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 8
|53.|678|...
|6..|195|...
|.98|.42|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 1
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|53.|678|...
|6..|195|...
|198|.42|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|53.|678|...
|6..|195|...
|198|342|.6.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|53.|678|...
|6..|195|...
|198|342|56.
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 3 9
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|53.|678|...
|6..|195|...
|198|342|567
____________
|8..|76.|..3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|53.|678|...
|6..|195|...
|198|342|567
____________
|8..|76.|4.3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|53.|678|...
|6..|195|...
|198|342|567
____________
|8..|761|4.3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|53.|678|...
|6..|195|...
|198|342|567
____________
|85.|761|4.3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 9
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|4.3
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 4 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|423
|426|853|791
|7..|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|423
|426|853|791
|71.|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|423
|426|853|791
|713|92.|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|..6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 8
|53.|678|...
|6..|195|...
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 2 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|53.|678|...
|6..|195|3..
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 2 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|53.|678|...
|6..|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|53.|678|.1.
|6..|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 9
|53.|678|91.
|6..|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 9
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|53.|678|912
|6..|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 1 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|534|678|912
|6..|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 2 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|534|678|912
|67.|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 2 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|534|678|912
|672|195|34.
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 2 9
Всего 1 возможностей заполнить эту клетку.
Подставляем 8
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|8.6
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 6 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|.6.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 1
Всего 1 возможностей заполнить эту клетку.
Подставляем 9
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|96.|.3.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|96.|53.|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|96.|537|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|28.
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 7 9
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|...|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 8 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 8
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|.8.|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 8 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 7
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|.87|419|..5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 8 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 6
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|.87|419|6.5
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 8 8
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|.87|419|635
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 8 1
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|...|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 1
Всего 1 возможностей заполнить эту клетку.
Подставляем 3
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|3..|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 2
Всего 1 возможностей заполнить эту клетку.
Подставляем 4
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|34.|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 3
Всего 1 возможностей заполнить эту клетку.
Подставляем 5
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|.8.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 4
Всего 1 возможностей заполнить эту клетку.
Подставляем 2
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|28.|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 6
Всего 1 возможностей заполнить эту клетку.
Подставляем 6
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|286|.79
____________
========================================
Клетка с минимальным числом оставшихся возможностей имеет индексы 9 7
Всего 1 возможностей заполнить эту клетку.
Подставляем 1
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|286|179
____________
===============================
Результат:
|534|678|912
|672|195|348
|198|342|567
____________
|859|761|423
|426|853|791
|713|924|856
____________
|961|537|284
|287|419|635
|345|286|179
____________

About

Sudoku Solver using Backtracking Recursion


Languages

Language:Java 100.0%