Задание
Целью работы является разработка и програмная реализация «Судоку» в объектно-ориентированном стиле. В программе должны соблюдаться принципы информационной закрытости, модульности и иерархической организации.
Функционал программы
Программное обеспечение предназначено для игры в «Судоку» и обладает следующими возможностями:
- генерация поля Судоку;
- решение сгенерированного Судоку;
- удаление вводимых значений пользователя;
- вывод теоретического материала для ознакомления с игрой.
Содержание отчета к программе
Содержание
1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ.. 4
1.1. История судоку. 4
1.2. Правила игры в судоку. 5
1.3. Как начать играть?. 5
1.4. Актуальность. 6
2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ... 7
2.1. Разработка обобщенного алгоритма функционирования приложения. 7
2.1.1. Алгоритм грубого перебора значений для генерации ячеек. 7
2.1.2 Алгоритм решения судоку. 7
2.2. Разработка структуры приложения. 10
2.2.1 Общие характеристики. 10
2.2.2. Минимальные системные требования. 10
2.2.3. Функциональное назначение. 10
2.2.4. Инсталляция и выполнение программного продукта. 10
2.2.5. Общий алгоритм программного продукта. 10
2.2.6. Разработанные меню и интерфейсы.. 13
2.2.7. Сообщения системы.. 15
3. ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ.. 17
ЗАКЛЮЧЕНИЕ.. 18
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 19
ПРИЛОЖЕНИЯ.. 20
Фрагмент программного кода
public class MyPanel extends JPanel {//класс наше поле, таблица 9 х 9
private int hx = -1;
private int hy = -1;
static final int lw = 9;
static final int lh = 9;
boolean flag = false;
private Sudoku n = new Sudoku();
public MyPanel() {
addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMotionHandler());
n.generateSudoku();
n.goContainerValue();
}
public void ClearField()
{
n.refreshField();
n.pr =0;
}
public boolean InSolved()
{
do{
n.refreshField();
n.pr++;
if(n.Solve() != null && n.CellsWell() == true)
break;
if(n.pr >= 200)
break;
}while(n.CellsWell() != true);
if(n.pr >= 200){
System.out.println("решени¤ нет" + n.pr);
return false;
}
else {
System.out.println("кол. предположений " + n.pr);
System.out.println("проверка на правильность значений " + n.CellsWell());
//System.out.println("¤чеек " + n.cells);
n.goContainerValue();
return true;
}
}
public void NewSudoku()
{
n = new Sudoku();
n.generateSudoku();
n.goContainerValue();
}
@Override
protected void paintComponent(Graphics g) {//прорисовка клеток
super.paintComponent(g);
Скриншот архива с проектом

Пояснения по запуску программы
- Скопировать папку «Судоку» с исполняемым файлом с оптического носителя на жесткий диск.
- Запустить Sudoku.jar
Телеграм
-