Задание
Целью работы является разработка и програмная реализация «Судоку» в объектно-ориентированном стиле. В программе должны соблюдаться принципы информационной закрытости, модульности и иерархической организации.
Функционал программы
Программное обеспечение предназначено для игры в «Судоку» и обладает следующими возможностями:
- генерация поля Судоку;
- решение сгенерированного Судоку;
- удаление вводимых значений пользователя;
- вывод теоретического материала для ознакомления с игрой.
Содержание отчета к программе
Содержание
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
ramil9209