Страница 3 из 7
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 20:13
gpv123
Упс... Небольшой недочет. После 15 строки добавить:
Код: Выделить всё
stage.removeEventListener(MouseEvent.CLICK, createFields);
Alazaur, создавай, в чем проблема?
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 20:37
Alazaur
gpv123, мне мораль не позволяет чужую идею присваивать
А ежели по теме. Тут затронули тему построения объектов по сетке.
И я уже второй раз вижу предложенную Санычем модель построения с использованием одномерного массива. И хоть лопни в голове у меня никак не рисуется, как оную использовать в реальных условиях, где может понадобится сетка. Например реализация алгоритма поиска пути. Как в такой сетке перебрать и проверить только соседние ячейки от текущей.
Или такая модель построения используется только чисто в графических целях?
UPD: Поправил немного пост, не правильный вопрос задал изначально)))
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 22:06
gpv123
Alazaur, лично я сразу понял, что тут лучше использовать одномерный массив. Выглядит как-то так:
UPD: i равно гигантскому числу в клетке
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 22:16
Alazaur
gpv123, это как раз ты приводишь пример вывода сетки в графических целях. С этим вопросов нет. Я имею ввиду другое.
Например есть сетка 100 x 100, каждая клетка имеет свойство проходима/непроходима. И стоит у меня юнит в какой-то клетке. Как мне имея сетку в одномерном массиве узнать какие вокруг него клетки проходимы, а какие нет.
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 22:25
Casperovskii
Alazaur
Будь бобр, можешь в личку ответить, че мутишь? Потому что я такой движок мутил на C++, только у каждой клетки было 4 свойства - проходима ли каждая её граница (делал это, чтобы была возможность разноуровневых объектов и для спрыгивания). Поле было 50х50 и генерилось порядка минуты (на слабеньком компе).
Сорь за оффтоп, но да - в графических целях быстрее так, а в прогерских - никак нет.
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 06 дек 2012, 22:27
Alazaur
Casperovskii писал(а):Alazaur
Будь бобр, можешь в личку ответить, че мутишь?
Ничего не мучу, это я привел просто как пример
))
gpv123, ты не подумай что я цепляюсь к этому способу построения или еще что))) Просто здесь ТС посоветовали построить сетку именно так несмотря на то что цели у него как раз таки программные. Вот я и думаю, если имеются такие возможности у "одномерной сетки" и они окажутся быстрее чем у "двухмерной" то я бы переписал некоторые алгоритмы из своих загашников)))
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 07 дек 2012, 06:13
sanych_dv
Воспринимайте массив в AS3 как объект и все значительно упростится. Одномерные они там или многомерные - это дело десятое. Важно представлять объект просто как пару "ключ => значение", в котором значением может быть что угодно, в том числе другой объект, с возможностью любого расширения своих значений. А, к примеру, в объекте Dictionary и ключом может быть что угодно. Если надо "быстрее", то используются типизированный массив Vector.<TYPE>, все элементы которого относятся к одному типу.
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 07 дек 2012, 06:36
sanych_dv
Код: Выделить всё
// запишем значения в массив var arr:Array = [new Sprite, new MovieClip]; arr[1].newProperty = "NEW MOVIECLIP PROPERTY"; for (var str:String in arr) { trace(str, " => ", arr[str]); } trace(arr[1].newProperty); // return // 0 => [object Sprite] // 1 => [object MovieClip] // NEW MOVIECLIP PROPERTY // ============================================== // теперь запишем то же самое, но с именованными ключами var obj:Object = { spr : new Sprite, mc: new MovieClip }; // или /* var obj:Object = { }; obj.spr = new Sprite; obj.mc = new MovieClip;*/ for ( str in obj) { trace(str, " => ", obj[str]); } obj.mc.newProperty = "NEW MOVIECLIP PROPERTY"; trace(obj.mc.newProperty); // return // spr => [object Sprite] // mc => [object MovieClip] // NEW MOVIECLIP PROPERTY
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 07 дек 2012, 06:51
Alazaur
sanych_dv, спасибо конечно, но что такое массивы, объекты и вектора и как их использовать я знаю) Вопрос был далеко не в этом.
Re: Criss-Cross или научите быть не быдло кодером
Добавлено: 07 дек 2012, 07:04
sanych_dv
Ну раз знаете, то считайте, что это написано не для вас.