Комментарии 12
Давным-давно была похожая статья на эту тему: https://habr.com/ru/post/126373/
Быть может она кому-нибудь будет полезна.
Автор, вы выбрали долгий путь к решению Судоку :)
Например, интересно, почему вы решили распознавать текст, не используя специализированных OCR-библиотек, типа pytesseract? Поверьте, у вас будет много подводных камней:
автодетектирование поворота картинки, без которого таблица, скорее всего, "поплывет"
сложности распознавания цифр: что будет, скажем, если вертикальный штрих из ячейки попадет на вход вашей OCR-функции вместе с числом?
Ваш алгоритм решит не все судоку.
Допустим, что вы определили, что в левом верхнем квадрате единица может быть только в первом столбце. Тогда отсюда следует, что в первом столбце в остальных квадратах единицы быть не может. Отсюда следует, что если в какой-то ячейке первого столбца остальных квадратов стоит выбор между единицей и другим числом, то там точно другое число.
Ещё улучшение. Если в каком-то квадрате (строке, столбце) в одной ячейке выбор между 1 и 2, во второй тоже выбор между 1 и 2, а в третьей выбор между 1, 2 и 3, то отсюда следует, что в третьей ячейке точно 3. Аналогично с четырьмя ячейками: в первой 1 или 2, во второй 1 или 3, в третьей 2 или 3, а в четвёртой 1, 2, 3 или 4, то в четвёртой точно четвёрка. И так далее
Я бы на месте дедушки не был рад
Конечно же я не буду портить дедушке всё удовольствие от решения этой головоломки, так как сам понимаю, насколько это бывает увлекательно. Тот факт, что он решал судоку, лишь натолкнул меня на мысль сделать этот мини-проект, потому что мне как начинающему разработчику полезно решать нестандартные задачи, а к тому же, это неплохой пет-проект для моего резюме, который в дальнейшем, надеюсь, принесёт мне плюсы в карму, при устройстве на новую работу по этому профилю)
Я понимаю, что это занудство но... Никого не смущает, что все переменные и функции названы с помощью "camelCase"? Ну просто мы же на питоне проект пишем, возможно стоит рекомендации соблюдать.
#4 Нейронные сети для начинающих. Sudoku Solver. Судоку. Часть 1