Skip to content

SerTelnov/sudoku

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sudoku

Build and Run

stack build

stack exec sudoku-exe

Команды для управления игрой

  • Перезапускать игру
    • Создать новую игру с тем же уровнем сложности Shift + N
    • Создать новую игру с менее сложным уровнем Shift + E
    • Создать новую игру с более сложным уровнем Shift + H
  • Вводить числа
    • Цифры на кватиатуре 1 - 9
    • Цифры нарисованные под полем игры
  • Закрыть приложение Esc

Краткое описание структуры проекта

Проект логически разбит на 3 модуля.

  1. Generator - модуль, в котором создается игровое поле. Вдохновлялся этой статьей.
  2. UI - модуль, в котором собирается интерфейс
  • MainUI - главный файл, в который передается сгенерированная игра и генеруется интерфейс.
  • FieldRender - отрисовывает игровое поле
  • InformationRender - отрисовывает текущую информацию об игре
  1. Файлы Sudoku и EventHandler занимаются созданием игры и обработки событий.

Подробнее про процесс создание игры

Сначала вызывается функция makeNewGame, которая генерируется рандомную бесконечную последовательность для создания игры. Эта функция вызывается ровно один раз за все время работы приложения. Она генерирует две последовательности GeneratorStep для создания поля и CellIndex для скрытия подсказок. Далее с этими параметрами будем работать в GeneratorEnv.

После регенации случайным последовательностей создаются поле для игры FieldGenerator и выбираются подсказки GameGenerator.

Потом вызывается runUI для создания интерфейса. Все UI события обрабатываются здесь.

Releases

No releases published

Packages

No packages published