Тема: Задачка
Показать сообщение отдельно
Старый 28.06.2012, 22:38
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 20  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Например, когда data = [1, 2, 3, 4, 5, 6, 7, 8, 9], w = 4. В таком случае хотелось бы одну колонку делать выше остальных, а не вразнобой
ну так какбе другие\дополнительные условия
а распихать все равно можно по простому (вроде бы )
Код AS3:
var i:int, j:int, k:int;
var data:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var res:Array = [];
 
var w:int = 4;
var len:int = data.length;
var h:int = Math.ceil(len / w);
 
 
for (i = 0; i < h; i++) res[i] = [];
 
k = 0;
for (j = 0; j < w; j++) 
{
 
	for (i = 0; i < h ; i++) 
	{
 
		res[i][j] = data[k++];
 
		// уместится ли остаток в прямоугольник
		if (len-- <= (w - j - 1) * (h - 1) + 1) break;
 
		// уместится ли в строку
		//if (--len < w - j) break;
	}
}
 
for (i = 0; i < h; i++) trace(res[i]);