| Lapp |
4.05.2006 5:46
Сообщение
#1
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Кто знаком с игрой Судоку?
Она появилась не очень давно, несколько лет назад. Я не знаю, насколько она сейчас распространена в России, поэтому рассказываю подробно (извините, если это излишне). По смыслу и по виду напоминает кроссворд, но в отличие от него она не буквенная, а цифровая. Хотя, цифры там используются только как значки - никаких операций над ними (сложения и т.п.) не проводится. Говорят (и я охотно этому верю), что она прежде всего завоевала популярность в Японии, потому что бедные японцы, ввиду особенностей своей письменности, лишены возможности разгадывать кроссворды - хотя появилась она на Западе. Если сейчас зайти в любой книжный, то прямо у дверей увишь специальный стенд, на котором стоит десятка два-три как тонких так и очень толстых книг с этими головоломками.. Игра довольно тупая, но видя такой бешеный успех за короткое время, я заинтересовался ей. А тут ее стали еще публиковать в университетской газете - не попробовать я просто не мог Теперь о правилах. Поле представляет собой квадрат 9х9 клеток (поделенный еще и на подквадраты 3х3), в некоторых из которых уже стоят циферки, а в остальные их нужно вписать. В результате в каждой клетке должно стоять по цифре от 1 до 9 (ноль не участвует!), причем так, чтобы в любом столбце и в любой строчке присутствовали все девять цифр. Более того, в каждом подквадрате тоже должны быть все цифры, каждой по одной. Правила очень простые. Существуют несколько методик решения, стратегий и тактик, которые разжевываются в книжках, но суть от этого не меняется. Ниже я привожу фото из университетской газеты (Bruin Daily, Apr 18, 2006), чтобы те, кто не видел, поимели представление. Ниже идет текст программы, которая решает головоломку. Алгоритм такой - берем перекрестье каждой строки с каждым столбцом, и смотрим набор цифр, который они содержат. Если в нем не хватает ровно одной цифры - вписываем ее в пересечение. Могут быть и другие алгоритмы, это лишь один из возможных. Одним шагом считается полный проход по полю, если за шаг находятся несколько таких цифр - ставятся все. Если не будет найдено ни одной, программа выдаст сообщение "множественный выбор" и остановится. Смысл в том, что нужно пробовать несколько разных вариантов. Я предлагаю народу попробовать и, может быть, предложить свои алгоритмы. Код не вычищен, прошу извинить за огрехи. Но он работает (проверено на FPC и TP). Программа требует наличие файла sudoku.dat - он текстовый, это просто построковая запись квадрата, я прилагаю образец ниже.
sudoku_1.pas ( 2.13 килобайт )
Кол-во скачиваний: 2306Вот образец содержимого файла sudoku.dat. Важно: файл позиционный, то есть цифры сдигать нельзя. Более того, в строчке должны обязательно присутствовать все девять знаков (цифры и пробелы) - закрасьте приведенный пример блоком, чтобы увидеть пробелы, присутствующие там. Цифра обозначется цифрой, пустое место - пробелом или любым знаком (не цифрой или нулем). Лишних пробелов тоже быть не должно! 8 2 ВОт и все Кому понравилось - откликайтесь. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
| Bokul |
4.05.2006 6:56
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
По поводу тестирования: проверял на таком файле
програмка сразу вылетает, хотя решение существует Код 546 718 392 298 534 716 713 296 458 971 365 824 632 841 975 854 927 163 425 189 637 369 472 581 187 653 249 P.S Задача и решения взято с одноименной программы если надо могу выложить программу(чуть больше двух мегов) Сообщение отредактировано: volvo - 2.11.2006 20:18 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
lapp Судоку 4.05.2006 5:46
Bokul Вы как будто мои мысли читаете :lol: , я тоже щас ... 4.05.2006 6:28
lapp
Вы как будто мои мысли читаете :lol: ,
.....
whil... 4.05.2006 6:54
lapp
програмка сразу вылетает, хотя решение существует... 4.05.2006 7:28
GoodWind может лучше использовать разделитель между числами... 4.05.2006 10:17
lapp
было бы удобнее составлять...
Дело в том, что иг... 4.05.2006 12:31
lapp Я немного подправил алгоритм: добавил перебор при ... 5.05.2006 12:39
Bokul Жалко что тема затухла не найдя решения генерации ... 25.07.2006 7:11
lapp
Жалко что тема затухла не найдя решения генерации... 25.07.2006 7:53
Bokul
Почему же, мне так интересно. :) Я так и не пон... 26.07.2006 1:31
DFooz http://rapidshare.de/files/29767339/ProSud.rar вот... 31.08.2006 15:21
Dreamer Всем привет! Моё хобби - программирование в ср... 29.01.2007 16:11
Michael_Rybak
(Не смотрел прогу, просто говорю) На МАН можешь ... 29.01.2007 17:33
Dreamer
(Не смотрел прогу, просто говорю) На МАН можешь п... 30.01.2007 12:27
Michael_Rybak С Паскалем (ну Дельфи, но все-таки) у меня было аб... 30.01.2007 14:38
Dreamer
С Паскалем (ну Дельфи, но все-таки) у меня было а... 2.03.2007 23:48
klem4 А что за МАН такой ? 30.01.2007 14:44
Michael_Rybak Малая Академия Наук (ср. НАН = Национальная Академ... 30.01.2007 19:27
Dreamer Решалка кстати дома лежит... недоднланная... алгор... 31.01.2007 13:04
Michael_Rybak Хочешь, можем обсудить алгоритм менее пенный, кото... 31.01.2007 18:02
Dreamer
Хочешь, можем обсудить алгоритм менее пенный, кот... 5.02.2007 15:23
Michael_Rybak
Есс!!! Доделал! То что нужно, дод... 6.02.2007 0:01
Dreamer
Молодец :)
Только если решение не единственно, ... 6.02.2007 13:14
NightmareZ Лажа. Прога пишется за день на коленке. Вотъ мой в... 15.02.2007 17:47
X.XaM_MaX.X А я делал алгоритм построение карт..не поверите...... 8.03.2007 21:32
Lapp
делал алгоритм построение карт..не поверите...мес... 9.03.2007 10:43
X.XaM_MaX.X Короче часть кода которая на ходу создавала ... 9.03.2007 18:19
Lapp
создавала "расклады" имеющие решения
Д... 10.03.2007 2:57
X.XaM_MaX.X Сложность у меня подразумевает процент возможного ... 19.04.2007 21:33
X.XaM_MaX.X О я вспомнил что скоро будет gbax 2007(это соревно... 22.04.2007 22:33
nevolia Помогите срочно мне нада курсовую написать игру Су... 2.05.2007 21:07
guaro nevolia
да... и я собрался писать курсовик по судо... 19.05.2007 13:07
Game-lord Хотите расскажу как генерировать карты, которые в ... 26.05.2007 17:56
wingman
Далее берем первые три столбца и меняем их места... 8.01.2008 19:54
Lir
По моему даже не имеет значение какие строки и ст... 20.03.2008 18:18
Djoker Здравствуйте!
Я написал генератор карт судоку,... 13.04.2008 16:26
melon всем привет, у меня курсовая на тему СУДОКУ, к сож... 3.06.2011 15:11
Lapp А что ты хочешь-то, melon? Прочитать файл, нарисо... 4.06.2011 10:54
melon
А что ты хочешь-то, melon? Прочитать файл, нарис... 4.06.2011 18:07
Lapp у меня тема курсовой написать игру СУДОКУ в паскал... 5.06.2011 2:37
Lapp Короче, melon, рисовать таблицу вручную - врагу не... 4.06.2011 14:37![]() ![]() |
|
Текстовая версия | 8.12.2025 15:06 |