Skip to content

Приложение "Sudoku by Peter" для Android

Приложение для решения и изучения методов решения судоку.

  • Модуль Генерации (Generator). Генерирует случайное судоку в зависимости от установленного уровня и используемых методов при решении.
  • Модуль Решатель (Solver). Ищет решение любой текущей позиции по логическому методу. Решение будет представлено в текстовом и графическом виде.
  • Модуль Графического интерфейса (GUI). Удобный графический интерфейс для решения судоку и нанесения различной графической информации.
  • Консоль в приложении позволяет загрузить любую позицию, включая размещение кандидатов. Также здесь можно получить текущее положение в текстовом виде для отправки своим знакомым.

Внимание!

Приложение платное. Без рекламы.

Скачайте из RuStore

Игра

app-game

При запуске приложения пользователь попадает на главный экран "Игра". На игровом поле появится сгенерированное судоку или сохраненная позиция.

Цифровые кнопки

app-game-digits

Используются для установки цифры в режиме редактирования или выбора активной цифры.

Активный режим игры

app-game-menu
  • Режим редактирования

В этом режиме нужно выделить ячейку на поле, где нужно установить цифру. Затем нажать на соответствующую цифровую кнопку.

  • для удобства активная ячейка мигает красным курсором
  • Режим расстановки кандидатов

В этом режиме расставляются кандидаты в свободных ячейках. Для начала перейдите в этот режим, нажав на кнопку. Затем с помощью цифровых кнопок выберите активную цифру. После этого можете нажимать на ячейки где нужно установить кандидата. Повторное нажатие на ячейке удаляет установленного кандидата.

  • для удобства активная ячейка мигает зеленым курсором
  • Режим выделения цифры (Подсветка активной цифры в ячейках и кандидатов)

В этом режиме можно выбирать активныю цирфу. Это может понадобиться когда соответствующей цифры нет в подсказках на игровом поле. Активная цифра может быть изменена при нажатие ячейки с установленной цифрой (подсказкой или открытой при игре).

  • Режим нанесения линий
app-links-styles

В этом режиме можно наносить линии. Для начала можно выбрать соответствующий цвет с при нажатии режима раскрашивания ячейки или кандадата. Затем нажмите на кнопку режима линии. Повторное нажатие позволяет выбрать тип линии. После этого нажмите на ячейку источника (выберется кандидат активной цифрры), для выбора направления линий нажмите на ячейку окончания.

  • При необходмости рисования линии между разными цифрами перед выбором направления на цифровых кнопкам можно азменить активную цифру.
  • Для удаления имеющейся линии, достаточно повторить действия аналогичные рисованию удаляемой линии.
  • Режим раскрашивания ячеек
app-cells-colors

Выберите этот режим для раскрашивания ячейки. Повторное нажатие на кнопку с этим режимом меняет цвет на следующий. После выбора цвета нажмите на раскрашиваемую ячеку. Повторное нажатие раскрашенную ячейку убирает цвет.

  • Режим раскрашивания кандидатов
app-candidates-colors

Выберите этот режим для раскрашивания кандадатов в ячейке. Повторное нажатие на кнопку с этим режимом меняет цвет на следующий. После выбора цвета нажмите на раскрашиваемую ячеку, раскрасится кандидат активной цифры. Повторное нажатие убирает цвет раскрашенного кандидата.

  • Получить подсказку
app-game-help

Нажмите на кнопку с вопросом. Будет проведена проверка правильности расстановки кандидатов. Если кандидата с правильной цифрой нет в ячейке или есть кандидат в секторе с открытой соседней цифрой, то будет предложено расставить кандидатов программой заново. Далее программа найдет одно из найлучших решений. Для принятия решения нажмите на кнопку с галочкой внизу экрана.

  • Очистить графические элементы

При нажатии на кнопку удаляются все графические элементы и раскрашивание.

  • Расширить экран (удобно в горизонтальном положении телефона)

Меню

Для перехода между разделами приложения использется меню

app-menu1
app-menu2

Уровень

app-settings

Пользователь может задать уровень игры. При генерации новая игра будут соответствовать установленному уровню. Т.е. методы необходимые для решения этого судоку будут соответствовать заданному уровню.

Статистика по использованым методам при решении судоку в зависимости от уровня

Статистика собирается по 1000 случайно сгенерированных судоку определенного уровня

Простой (Simple)

МетодКоличество шагов при решенииПроцент
NakedCandidates.Single1020100,00%
Итого:1020100,00%

Как видно из таблицы при решении судоку простого уровня можно даже не расставлять кандидатов.

Легкий (Easy)

МетодКоличество шагов при решенииПроцент
HiddenCandidates.Single102150,17%
NakedCandidates.Single101449,83%
Итого:2035100%

Для судоку легкого уровня уровня достаточно знать два простых метода решения

Средний (Intermediate)

МетодКоличество шагов при решенииПроцент
HiddenCandidates.Single101213,09%
NakedCandidates.Single101113,08%
Pointing.Pair84010,87%
HiddenCandidates.Pair82710,70%
NakedCandidates.Pair82510,67%
NakedCandidates.Triple7629,86%
HiddenCandidates.Triple7589,81%
LineBoxReduction.Line/Box Reduction6218,03%
HiddenCandidates.Quad5136,64%
NakedCandidates.Quad4966,42%
Pointing.Triple480,62%
ALS.Type170,09%
ALS.Type250,06%
UniqueRectangle.Type140,05%
Итого:7729100%

Этот уровень подходит для продвинутых пользователей, которые не хотят тратить слишком много времени на решение.

Эксперт (Expert)

МетодКоличество шагов при решенииПроцент
HiddenCandidates.Single101610,98%
NakedCandidates.Single101410,96%
ALS.Type18529,21%
Pointing.Pair7387,98%
NakedCandidates.Pair6917,47%
HiddenCandidates.Pair6106,60%
UniqueRectangle.Type15636,09%
LineBoxReduction.Line/Box Reduction5125,54%
HiddenCandidates.Triple4965,36%
NakedCandidates.Triple4514,88%
AIC.Type14284,63%
AIC.Type24034,36%
AIC.Discontinuous loop with strong links3093,34%
AIC.Discontinuous loop with weak links2732,95%
HiddenCandidates.Quad2562,77%
NakedCandidates.Quad2412,61%
ALS.Type21952,11%
Pointing.Triple430,46%
UniqueRectangle.Type2400,43%
ForcingChains.Group-Digit320,35%
ForcingChains.Cell-Digit310,34%
UniqueRectangle.Type3120,13%
ForcingChains.Cell-Group90,10%
ForcingChains.Digit-Cell80,09%
ForcingChains.Group-Group70,08%
ForcingChains.Cell-Cell70,08%
ForcingChains.Digit-Group60,06%
ForcingChains.Group-Cell60,06%
Итого:9249100%

Начальная позиция

Генерация случайного судоку в зависимости от установленного уровня сложности и используемых методов при решении.

Консоль

Запуск консоли осуществляется через меню.

app-console

При запуске консоли отобразится текущая позиция судоку. При желании эти данные можно скопировать и отправить через буфер обмена.

Для установки своей позиции для начала намите кнопку "Очистить".

Затем вставьте через буфер обмена начальную позицию.

Начальная позиция должна содержать как минимум строку из 81 символа:

  • 1..9 - цифры подсказки
  • 0 или пробел - свободные ячейки

Дополнительно можно указать:

  • расставленных кандидатов в формате {1}@B3
  • открытые пользователем цифры в ячейках (3)@D7

Разделитель между строками иформации - ";"

Для примера можно ввести следующую позицию

txt
#sudoku puzzle string;
000900007030085000500327000890000053002004900060800200000009000040050802000260000;
#opened and free (with candidates) cells;
{1246}@A1;{128}@A2;{1468}@A3;{14}@A5;{16}@A6;(5)@A7;{123468}@A8;{124679}@B1;{14679}@B3;{146}@B4;{146}@B7;{12469}@B8;{1469}@B9;{18}@C2;{14689}@C3;{146}@C7;{14689}@C8;{14689}@C9;{147}@D3;{167}@D4;{17}@D5;{126}@D6;{1467}@D7;{137}@E1;{157}@E2;{1567}@E4;{137}@E5;{1678}@E8;{168}@E9;{1347}@F1;{13457}@F3;{1379}@F5;{13}@F6;{147}@F8;{14}@F9;{12367}@G1;{12578}@G2;{135678}@G3;{147}@G4;{1347}@G5;{13467}@G7;{13467}@G8;{1456}@G9;{13679}@H1;{13679}@H3;{17}@H4;{13}@H6;{13679}@H8;{1379}@K1;{1578}@K2;{135789}@K3;{138}@K6;{1347}@K7;{13479}@K8;{1459}@K9

После копирования из буфера в консольприложения нажмиту кнопку "Установить".

Статистика

По решению сгенерированных приложением игр ведется статистика.

app-stats

Закрытие приложения

При закрытии приложения сохраняется текущая позиция судоку, которая будет загружена при следующем запуске.