Заинтересовал меня ваш вопрос, спортивным интересом =)
Как пример:
https://jsfiddle.net/zq9op1gL/4/
В начале скрипта, если isEditor == true, то будет редактор змейки, для создания пути.
Пользоваться так:
Кликаем по ячейкам как вам нужно по правилам формирования слов
Ниже таблицы будут выводиться координаты ячеек. Что то такое:
1,4 , 1,5 , 2,5 , 2,4 , 3,4 , 3,5 ,
Копируем эту строку с координатами и вставляем в переменную массив "path"
Всё новый путь для формирования слов готов.
Меняем isEditor на false, смотрим результат, поидее должно работать.
Единственное есть недочёт, как проверка конца пути, если больше чем осталось ячеек, то слово впишется не полностью, но это уже мелочи ...
Можно ещё рандомно сами слова переворачивать для усложнения, чтобы путь запутать и т.д.
https://jsfiddle.net/zq9op1gL/6/
Развлекуха, за качеством не гнался =)