Задать вопрос
@Blackzeppelin

Как быстро составить филворд из заданного списка слов?

Есть некий список слов — не важно, сколько, но, допустим, 25. Мне нужно сделать из них головоломку типа "филворд", т.е. разместить все эти слова на неком поле RxC клеток, а пустые клетки, оставшиеся после размещения слов, заполнить рандомными буквами.

На просторах гугла были найдены сервисы, способные сгенерировать кроссворд, и один из них даже как будто умеет филлворды, но именно этот раздел там не работает. Другого сервиса, способного воспринять кириллицу, не нашлось. Вопрос: какими средствами можно это сделать?
В идеале я бы вообще зависла с экселем, чтобы реализовать это в таблице, но боюсь это займёт все выходные. Может кто-то знает быстрое решение?
  • Вопрос задан
  • 48674 просмотра
Подписаться 2 Средний 1 комментарий
Решения вопроса 2
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Как вариант, использовать Google Apps Script

Берем набор слов
5ab5543fa709d979929499.png

Колдуем
5ab5549085e47511989329.png

Получаем
5ab5549c9df60121044185.png

=====================================================

Пример для копирования

Я использовал библиотеку bunkat/wordfind, поэтому параметры настройки ширины и высоты необходимо брать из нее. Необходимо так же учесть, что иногда, при задании размеров, количества попыток для создания массива кроссворда может не хватить - перехватывайте это событие.
Ответ написан
Комментировать
honor8
@honor8
Принципы быстродействия VBA в описании
Нашёл ссылку на скрипт https://yadi.sk/d/zGfusv0MnNPSJ (virustotal). Собирает венгерский кроссворд со словами по диагонали, вертикали и горизонтали.

Скачиваем. Распаковываем.
Открываем через блокнот файл lib/default.js. Заменяем содержимое файла на строку
ws.defaultwords = ["мир","поиск","русский","буквы","пароход","сороконожка"];
(или что-то похожее) Сохраняем.

Открываем через блокнот файл lib/main.js. Ищем текст
var letters = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
и заменяем на текст
var letters = new Array("А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ь", "Ъ", "Ы", "Э", "Ю", "Я");
Сохраняем.

Запускаем файл index.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
решения кроме перебора не существует
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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