stack build
stack exec sudoku-exe
- Перезапускать игру
- Создать новую игру с тем же уровнем сложности
Shift
+N
- Создать новую игру с менее сложным уровнем
Shift
+E
- Создать новую игру с более сложным уровнем
Shift
+H
- Создать новую игру с тем же уровнем сложности
- Вводить числа
- Цифры на кватиатуре
1
-9
- Цифры нарисованные под полем игры
- Цифры на кватиатуре
- Закрыть приложение
Esc
Проект логически разбит на 3 модуля.
Generator
- модуль, в котором создается игровое поле. Вдохновлялся этой статьей.UI
- модуль, в котором собирается интерфейс
- MainUI - главный файл, в который передается сгенерированная игра и генеруется интерфейс.
- FieldRender - отрисовывает игровое поле
- InformationRender - отрисовывает текущую информацию об игре
- Файлы
Sudoku
иEventHandler
занимаются созданием игры и обработки событий.
Сначала вызывается функция makeNewGame, которая генерируется рандомную бесконечную последовательность для создания игры. Эта функция вызывается ровно один раз за все время работы приложения. Она генерирует две последовательности GeneratorStep для создания поля и CellIndex для скрытия подсказок. Далее с этими параметрами будем работать в GeneratorEnv.
После регенации случайным последовательностей создаются поле для игры FieldGenerator и выбираются подсказки GameGenerator.
Потом вызывается runUI для создания интерфейса. Все UI события обрабатываются здесь.