Генератор судоку.

Делись идеей, получай поддержку и критику!

Генератор судоку.

Postby Kosist on 24 Dec 2012, 01:14

Уважаемые форумчане! Представляю на ваш суд свое очередное творение - генератор судоку.
Что такое судоку, я думаю, знают все, а те, кто не в курсе, могут почитать информацию на википедии. Штука эта довольно интересная и развивающая, однако, иногда проблематично найти нормально составленные задания. Под "нормально составленными" я имею в виду такие судоку, в которых размещение цифр в клетках симметрично между собой. И именно эта деталь была одной из главных при реализации этого задания.
Но перейдем ближе к описанию программы. Она позволяет генерировать заданное количество судоку, сразу записывать их в doc-файл, а затем, по желанию, выводить файл на печать на "дефолтный" принтер. Также, при желании, можно сохранять в отдельный doc-файл и "ответы" - т.е. судоку с полностью заполненными клеточками.
Принцип ее функционирования довольно прост. Вначале пользователь должен указать необходимые параметры - количество сгенерированных заданий судоку, их сложность, путь к папке с сохраненными файлами, имя файла с судоку; отметить необходимость сохранять файл с ответами, и быструю печать файла с заданиями. После этого, можно запускать программу на генерацию.
При этом, в начале формируется числовой двумерный массив данных, которые соответствуют правилам судоку - цифры не должны повторятся по горизонтали, вертикали, и внутри квадратиков. По ходу формирования массива, идет проверка этоих условий до тех пор, пока массив не будет полностью сформирован. Естественно, что строится этот массив при помощи постоянного "тасования" цифр. Затем, формируется "маска" нулей - т.е. закрытых, удаленных ячеек. Это происходит по принципу рандомного построения двумерного массива с нулей и единиц. Затем, берутся данные первых пяти квадратиков (если считать слева направо, и сверху вниз), и исходя из них формируются симметричные по отношению к ним остальные клеточки. Таким образом, получается симметричная сетка из нулей и единиц. После этого, происходит сравнение сгенерированного судоку с этой "маской", и на месте нулей в исходный, сгенерированный массив данных, также записываются нули (пробелы).
После этого, все это дело записывается в файл, и дальше все повторяется до тех пор, пока не будет сгенерированно необходимое количество судоку.
Такое довольно громоздкое отображение выходного массива (двумерный массив кластеров, которые внутри имеют двумерный массив строк) необходим для визуального разделения большого квадрата на маленькие, потому как в обычном, двумерном массиве, все цифры сливаются в один квадрат. Ну, а массив строк необходим для того, чтобы вместо нулей не отображать вообще ничего - т.е. пробелы.
Для удобства и отслеживания количества сгенерированных судоку прикручен прогресс бар - он полезен на случай большого количества необходимых судоку.
Для работы программы необходимо наличие Report Generation Toolkit.
Вот, наверное, и все.
Буду рад прислушаться к любой критике, интересно узнать ваше мнение по поводу этой программы.
Надеюсь, что кому-то она также пригодится, как и мне - раньше мне приходилось скриншотить картинки судоку, и вручную вставлять их в ворд. Теперь все намного проще.
Attachments
Sudoku LV-2010.rar
(208.47 KiB) Downloaded 218 times
Sudoku LV-2012.rar
(321.5 KiB) Downloaded 273 times
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Генератор судоку.

Postby Pavel Krivozubov on 24 Dec 2012, 07:51

Спасибо, интересная реализация в LabVIEW такого ещё не было)
Думаю эта тема достойна главной :super:

- ждём Ваших заказов на написание программ

User avatar
Pavel Krivozubov
professor
professor
 
Posts: 4373
Joined: 07 Feb 2008, 16:39
Location: г. Электросталь
Medals: 3
Activity (2) Bronze (1)
LabVIEW Version: 7.0 - 2013
Karma: 213
hardware I/O PDA VIP vision bloggers internet teachers students freelance

Re: Генератор судоку.

Postby Oleg B. on 24 Dec 2012, 12:04

Attachments
Sudoku LV-2012_OB.rar
(311.78 KiB) Downloaded 171 times
veni, vidi, phallomorphi
User avatar
Oleg B.
leader
leader
 
Posts: 671
Joined: 25 Sep 2011, 11:30
Location: Israel
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 5 .. 2016
Karma: 165
CLD I/O VIP vision freelance

Re: Генератор судоку.

Postby Pavel Krivozubov on 24 Dec 2012, 12:55


- ждём Ваших заказов на написание программ

User avatar
Pavel Krivozubov
professor
professor
 
Posts: 4373
Joined: 07 Feb 2008, 16:39
Location: г. Электросталь
Medals: 3
Activity (2) Bronze (1)
LabVIEW Version: 7.0 - 2013
Karma: 213
hardware I/O PDA VIP vision bloggers internet teachers students freelance

Re: Генератор судоку.

Postby Kosist on 24 Dec 2012, 17:46

Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 786
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students


Return to Проекты

Who is online

Users browsing this forum: No registered users and 1 guest

cron