QR · Судоку

По введённому тексту строится QR-код, который затем повреждается инверсией модулей данных — настолько сильно, насколько это возможно без потери читаемости. Повреждения распределяются случайно и доводят символ до самого предела корректирующей способности: ещё одна ошибка в новом кодовом слове делает его нечитаемым. На свободный от служебных узоров блок данных накладывается поле судоку: из каждого блока 3×3 выбирается один тёмный модуль, стирается, а число из решения судоку в этой клетке становится подсказкой. Головоломка, таким образом, хранит «карту» утраченных модулей: решив судоку и вернув числа-подсказки на место, можно снова прочитать исходный текст. Ниже пошагово показана вся генерация — от текста до головоломки, которую предстоит решить.

1 Текст для QR

 

2 Исходный QR

3 Дельта случайных ошибок

исходный модуль инвертированный модуль

4 Результирующий QR с ошибками

5 QR с решением судоку

Жёлтым выделены числа, под которыми стираются модули (по одному на блок 3×3). Их координаты и задают восстанавливаемые модули.

6 Судоку без решения

Последовательность чисел, под которыми стёрты модули (блоки 3×3 слева направо, сверху вниз):

7 QR со стёртыми модулями

8 Восстановление по одному модулю

Числа, под которыми были стёрты модули, в пазле не даны; их последовательность по блокам (слева направо, сверху вниз) выведена под судоку в панели 6. Введите эти 9 чисел по порядку: каждое верное число возвращает свой стёртый модуль, и когда все на месте — QR читается.