| 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 ВОт и все Кому понравилось - откликайтесь. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
| Dreamer |
5.02.2007 15:23
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Хочешь, можем обсудить алгоритм менее пенный, который будет решать любые. Есс!!! Доделал! То что нужно, доделал!!! Решает все Судоку, которые имеют решения! Вот она програмка!!! В сеансе игры - жмите Enter - всё будет решено!!! Прикрепленные файлы
Sudoku6.0.zip ( 28.68 килобайт )
Кол-во скачиваний: 542 |
| Michael_Rybak |
6.02.2007 0:01
Сообщение
#3
|
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
|
lapp Судоку 4.05.2006 5:46
Bokul Вы как будто мои мысли читаете :lol: , я тоже щас ... 4.05.2006 6:28
lapp
Вы как будто мои мысли читаете :lol: ,
.....
whil... 4.05.2006 6:54
Bokul По поводу тестирования: проверял на таком файле
... 4.05.2006 6:56
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
Молодец :)
Только если решение не единственно, ... 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 17:42 |