powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
14 сообщений из 14, страница 1 из 1
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845105
BRS_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
/*Описание*/

Есть WinForms приложение + MDB файл со словарем (поля: id, word)
Есть шаблон кроссворда загруженный в грид. В каждой белой ячейке находится номер слова (если слова пересекаются - то два номера). Для наглядности сделал скрин и проставил в паинте номера в началах каждого слова. Если в номере пристутствует "h" - значит слово идет по горизонтали, если "v" - по вертикали:
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845106
BRS_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть List<my_obj> равный количеству слов в кроссворде (22 шт) следующего вида:

Номер слова в спискеКод словаДлинаОграничения01h41h[1]=2v[0];1h[3]=3v[0];12v52v[0]=1h[1];2v[2]=7h[1];2v[4]=11h[1];23v53v[0]=1h[3];3v[2]=7h[3];3v[3]=9h[0];3v[4]=11h[3];............2120h520h[1]=13v[4];20h[3]=14v[4];

Теоретически, по этому списку можно построить что-то вроде графа взаимосвязей между словами.
На картинке - вручную построеный упрощенный граф (без указания зависимости по буквам пересекающихся слов):
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845108
BRS_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
/*Теперь вопрос*/
Можно ли, зная взаимосвязи между словами, сформировать сразу единый SQL запрос и вытянуть все необходимые слова?


/*Примечания*/
MDB-файл был выбран как простое локальное хранилище словаря. В случае, если построение SQL запроса упрется в ограничения синтаксиса SQL'я Акцесса - то теоретически можно перейти на другое хранилище.

Да, я знаю слово "рекурсия", но интересует возможность именно такого варианта заполнения сетки.
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845111
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1,

нехер с запросом страдать, хранилищем может быть простой текстовый файл
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845648
BRS_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторнехер с запросом страдать, хранилищем может быть простой текстовый файл

благодарю, Кэп! Проходи мимо с такими советами.
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845699
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1благодарю, Кэп! Проходи мимо с такими советами.
страдай дальше, удачи в безнадёжном мероприятии!
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845751
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
BRS_1Можно ли, зная взаимосвязи между словами, сформировать сразу единый SQL запрос и вытянуть все необходимые слова?
Что значит "необходимые" ?
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845787
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2BRS_1Можно ли, зная взаимосвязи между словами, сформировать сразу единый SQL запрос и вытянуть все необходимые слова?
Что значит "необходимые" ?+1
Слов в кроссворде 22, слов в таблице 22, они необходимы все.
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845793
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1Можно ли, зная взаимосвязи между словами, сформировать сразу единый SQL запрос и вытянуть все необходимые слова?
Можно, в MS SQL тоже есть рекурсия :-) Но я бы не взялся. Увы, самым простым, быстрым и очевидным для меня является решение в лоб на C# (или другом ЯП). На Sql, боюсь, читабельность такого запроса, как и его скорость, будут катастрофическими.
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38845971
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1,

Я бы поступил так.
1) Надо сохранить граф в БД а) каждое слово (длина, ориентация), б) пересечения между словами (номер буквы первого и второго)
2) А дальше погнали перебор а) берём слова, для которого меньше всего кандидатов на подстановку, б) рекурсивно все пересечения с ним в) нет кандидатов -- тупик г) есть кандидаты -- дальше рекурсивный перебор по кандидатам

Учтите у MS SQL есть ограничение на рекурсию 32 раза что ли.
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38846017
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voroninУчтите у MS SQL есть ограничение на рекурсию 32 раза что ли.
это неправда (просто умолчание)
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38846051
BRS_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyCat2пропущено...

Что значит "необходимые" ?+1
Слов в кроссворде 22, слов в таблице 22, они необходимы все.

Неправильная формулировка. Более точная формулировка - "и вытянуть все удовлетворяющие запросу". Вытянет запрос все 22 слова удовлетворяющие ограничениям - отлично! Но и если больше половины вытянет - тоже неплохо.


Arm79BRS_1Можно ли, зная взаимосвязи между словами, сформировать сразу единый SQL запрос и вытянуть все необходимые слова?
Можно, в MS SQL тоже есть рекурсия :-) Но я бы не взялся. .

Мне не нужна рекурсия в SQL.
Интересует можно ли построить такой SQL-запрос (да, пусть он будет очень сложный) который без рекурсии вытянет слова, удовлетворяющие условию пересечения с остальными словами?
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38846124
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1Интересует можно ли построить такой SQL-запрос (да, пусть он будет очень сложный) который без рекурсии вытянет слова, удовлетворяющие условию пересечения с остальными словами?

Задачка нетривиальная, тянет на небольшую курсовую
...
Рейтинг: 0 / 0
Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
    #38848213
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BRS_1Antonariyпропущено...
+1
Слов в кроссворде 22, слов в таблице 22, они необходимы все.

Неправильная формулировка. Более точная формулировка - "и вытянуть все удовлетворяющие запросу". Вытянет запрос все 22 слова удовлетворяющие ограничениям - отлично! Но и если больше половины вытянет - тоже неплохо.


Arm79пропущено...

Можно, в MS SQL тоже есть рекурсия :-) Но я бы не взялся. .

Мне не нужна рекурсия в SQL.
Интересует можно ли построить такой SQL-запрос (да, пусть он будет очень сложный) который без рекурсии вытянет слова, удовлетворяющие условию пересечения с остальными словами?

вы же знаете, что любая рекурсивная функция может быть развернута в не рекурсивную функцию.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Заполнение сетки кроссворда словами при помощи SQL-запроса. Возможно ли?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]