Как стать автором
Обновить

Комментарии 12

Давным-давно была похожая статья на эту тему: https://habr.com/ru/post/126373/

Быть может она кому-нибудь будет полезна.

Спасибо большое, обязательно воспользуюсь ей при написании второй части!

Автор, вы выбрали долгий путь к решению Судоку :)

Например, интересно, почему вы решили распознавать текст, не используя специализированных OCR-библиотек, типа pytesseract? Поверьте, у вас будет много подводных камней:

  • автодетектирование поворота картинки, без которого таблица, скорее всего, "поплывет"

  • сложности распознавания цифр: что будет, скажем, если вертикальный штрих из ячейки попадет на вход вашей OCR-функции вместе с числом?

Здравствуйте, я тоже прихожу к решению через OCR, спасибо за совет, с вероятностью 80% так и поступлю)

Про решение самого судоку попадалась вот такая хорошая лекция

Спасибо большое, изучу и возможно дополню своё решение

Ваш алгоритм решит не все судоку.

Допустим, что вы определили, что в левом верхнем квадрате единица может быть только в первом столбце. Тогда отсюда следует, что в первом столбце в остальных квадратах единицы быть не может. Отсюда следует, что если в какой-то ячейке первого столбца остальных квадратов стоит выбор между единицей и другим числом, то там точно другое число.

Ещё улучшение. Если в каком-то квадрате (строке, столбце) в одной ячейке выбор между 1 и 2, во второй тоже выбор между 1 и 2, а в третьей выбор между 1, 2 и 3, то отсюда следует, что в третьей ячейке точно 3. Аналогично с четырьмя ячейками: в первой 1 или 2, во второй 1 или 3, в третьей 2 или 3, а в четвёртой 1, 2, 3 или 4, то в четвёртой точно четвёрка. И так далее

Спасибо за комментарий, обязательно рассмотрю Ваш вариант во второй части этой статьи!

Я бы на месте дедушки не был рад

Конечно же я не буду портить дедушке всё удовольствие от решения этой головоломки, так как сам понимаю, насколько это бывает увлекательно. Тот факт, что он решал судоку, лишь натолкнул меня на мысль сделать этот мини-проект, потому что мне как начинающему разработчику полезно решать нестандартные задачи, а к тому же, это неплохой пет-проект для моего резюме, который в дальнейшем, надеюсь, принесёт мне плюсы в карму, при устройстве на новую работу по этому профилю)

Я понимаю, что это занудство но... Никого не смущает, что все переменные и функции названы с помощью "camelCase"? Ну просто мы же на питоне проект пишем, возможно стоит рекомендации соблюдать.

Здравствуйте, спасибо за замечание, учту в дальнейшем, но хочу заметить, что это дело вкуса, мне таким образом удобнее писать, опять же ничего не имею против других способов написания)

Для меня написание через camelCase более интуитивно понятно и читабельно в коде

Зарегистрируйтесь на Хабре, чтобы оставить комментарий