Расстановка.
Условие: имеются двумерный (высота и ширина известны) массив, и список значений.
Задача: при любых размерах массива симметрично расставить по его углам значения списка. Вот все никак не могу довести до ума алгоритм решения этой задачи... Есть идеи ? |
Re: Расстановка.
1)если список значений больше чем width*height/4 то задача не решается
2)уместить етот список значений в масив width/2,height/2 в принципе решать ее надо не очень сложным перебором клетки заполняем "волной" ... тоесть 0,0 ; 1,0 ; 1,1 ; 0,1; 2,0 ; 2,1 ; 2,2; 1,2 ; 0,2; так чтобы масив чисел 1,2,3,4,5,6,7,8,9 уместился вот так : 12500 43600 98700 00000 хотя тут мона и по извращатся :) 3)скопировать етот масив в 4 угла инвертировав тоесть в левый угол скопировать оригинал, в правый инверсию по X тоже самое с высотой |
Re: Расстановка.
Цитата:
|
Re: Расстановка.
хм я тут подумал что width и height должны быть кратны 2
иначе ты общий масив не поделиш на 4 части :) в принципе ето условие для простого решения задачи теоретически я думаю ее возможно решить при общем условии размер масива с числами * 4 <= width * height первоначально надо выделить из общего масива 1/4 часть и сделать из нее одномерный масив, к примеру вот у нас игровая область : 0000 0000 0000 если ее делить на 4 части при размере масива с числами = 3 то выйдет так (числами обозначены номер части масива) 1133 1243 2244 или так 1133 2134 2244 в общем нам надо получить только номера клеток для первого под масива потом все просто - превращаем его в одномерный масив по алгоритму который я описал в 2 посте пункт 2 :) размер етого масива будет => размера масива с числами заполняем псевдо-случайно, но так чтобы генератор чисел генерировал "ближе" к нулю (при такой генерации юниты будут только с краев карты) после всего етого берем етот одномерный масив и копируем в первый блок общего масива потом собсно инверсно копируем в остальные 4 ps. а задача оказалась чуть сложнее чем я думал но imho тут нету ничего уж слишком сложного |
Re: Расстановка.
Ладно, буду пробовать.
|
Часовой пояс GMT +4, время: 13:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot