Есть многомерный массив.
var array = [
[
'один',
'два',
'три',
'четыре'
// всего 16 букв
]
];
Список слов из
array[0]
должен быть размещен в таблицу, каждая буква - это отдельная ячейка таблицы. Расположение слов в таблице - не имеет значения. Главная задача - оставить их читаемыми по одной из сторон.
|о|д|и|н| |ч|е|т|ы|
|ч|е|р|т| |т|д|о|р|
|е|т|ы|р| |р|в|д|е|
|д|в|а|и| или |и|а|и|н|
Мне кажется что вставить их без разбора на буквы - нереально. Вся проблема в том, что некоторые слова могут быть "закручены" (не знаю как правильно сказать). Пример:
| | | | | |ч|е|т|ы|
|ч|е|р| | | | | |р|
|е|т|ы| | | | | |е|
| | | | | или | | | | |
Разбор слов на буквы:
for(var value = 0; value < array[0].length; value++) {
for (var index = 0; index < array[0][value].length; index++) {
// console.log(array[0][value][index]);
}
}
Важные нюансы:
- Общее количество букв может быть больше чем 16.
- Ячеек по горизонтали может быть больше чем 4. По задумки их количество указывается опционально
var cells = 4;
.
- Ячеек по вертикали может быть ровно столько - сколько требуется для размещения всех слов.
- Пустых ячеек быть не должно.
Пример:
cells = 4 cells = 4
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | или | | | | |
16 букв | | | | |
20 букв
Над этой задачей я сижу 3й день, с 10:00 до 23:00. Очень сложный для меня алгоритм. Буду рад любой помощи, любым советам относительно реализации.