еще один генератор кроссвордов - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь построить генератор кроссвордов, и я проваливаюсь.

Я прочитал несколько статей (насколько я мог понять), изучил некоторый код, скачал Qwx (https://www.quinapalus.com/qxw.html) и Crossword Compiler (https://www.crossword -compiler.com /) и использовал некоторые онлайн-генераторы.

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

Я установил на свой Android приложение кроссвордов, и через несколько секунд оно создало сетку 13x13 с таким набором слов (я их не выбирал): fim democrata ion falsidade oma tripa esquadrao aga cem diretor rosas ousadia notar atear foi omega rmn menta quasis apa finlandes ela literario clinico tosse agata curador encomenda.

Используя Crossword Compiler (https://www.crossword -compiler.com / ) в режиме, в котором я могу определить слова, я использовал эти слова, и он предложил несколько решений, но ни одно из них не использовало28 слов.

В моей первой попытке пользователь выбрал набор слов, и программное обеспечение разместило бы их в сетке.

Мой подход:

  1. упорядочить слова по размеру, по убыванию
  2. создать подмножество из одного слова
  3. position it
  4. создать подмножество из двух слов
  5. расположить их
  6. создать подмножество из трех слов
  7. расположить их
  8. .. .

Проблема в том, что в наборе, например, 4 слова, и я не могу их расположить, у меня 23 (4! -1) другие возможности, путем изменения порядка слов в наборе (перестановка). Но, если у меня есть 10 слов, есть 3628800 возможностей. Я могу обрабатывать каждый набор отдельно, но даже в этом случае это очень большое число.

Итак, я пришел к выводу, что такой подход не решит проблему во многих ситуациях.

Кто-нибудь может предложить лучший вариант?

Большое спасибо !!

...