@Murat50005

Как разместить слова в матрице 6x6 для игры в филворды?

У меня есть список слов, включающий ['требование', 'хозяйство', 'сторона', 'поезд', 'номер'] или ['миллион', 'красота', 'дорога', 'здание', 'голос', 'класс'], которые в сумме составляют 36 букв. Я хочу создать матрицу 6x6 и разместить эти слова в ней, используя различные формы. У кого-то есть советы или алгоритмы, как это сделать?

p.s Будет здорово, если у вас есть пример на Python!
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
В общем случае - только комбинаторикой. Играть с каждым словом в змейку и замораживать его в произвольной позиции. Если филворд не складывается, то изменять форму изгиба предыдущего слова. Перебрать все формы изгиба и начальной точки этого слова. Не получилось собрать филворд? Вернуться на предыдущее за предыдущим словом - покрутить его форму и начальную точку, покрутить следующее слово. Опять не получилось? Вернуться на 2 слова назад, опять тоже самое, но поменять следующие за ним слова местами.
Можно оптимизировать алгоритм, чтобы змейка не стремилась расти в область пустых клеток, а чаще старалась огибать уже существующие контуры, тогда вероятнее собрать филворд в кратчайшие сроки, но слова будут меньше перемешаны, это будет заметно на больших площадях доски.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы