Показать сообщение отдельно
Старый 20.10.2011, 15:50
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Общее кол-во диагоналей = num = (n + m - 1)
Самая длинная диагональ = max = (n <= m) ? n : m;
Код AS3:
var num:uint = (n + m - 1);
var max:uint = (n <= m) ? n : m;
 
var diagArr:Array = [];
for(var k:uint = 0;k<num;k++)
{
    var retArr:Array = [];
    var x:uint = (k > m) ? (k - m - 1) : 0;
    var y:uint = (k <= n) ? k : n;
    var l:uint = (k < max) ? k : 2*max - k;
    for(var i:uint = 0;i<l;i++)
    {
         retArr.push(sourceArr[x+i][y+i]);
    }
    diagArr.push(retArr);
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.