Criss-Cross или научите быть не быдло кодером

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Criss-Cross или научите быть не быдло кодером

Сообщение gpv123 »

Упс... Небольшой недочет. После 15 строки добавить:

Код: Выделить всё

stage.removeEventListener(MouseEvent.CLICK, createFields);
Alazaur, создавай, в чем проблема? :D
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Criss-Cross или научите быть не быдло кодером

Сообщение Alazaur »

gpv123, мне мораль не позволяет чужую идею присваивать :D

А ежели по теме. Тут затронули тему построения объектов по сетке.
И я уже второй раз вижу предложенную Санычем модель построения с использованием одномерного массива. И хоть лопни в голове у меня никак не рисуется, как оную использовать в реальных условиях, где может понадобится сетка. Например реализация алгоритма поиска пути. Как в такой сетке перебрать и проверить только соседние ячейки от текущей.
Или такая модель построения используется только чисто в графических целях?
UPD: Поправил немного пост, не правильный вопрос задал изначально)))
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Criss-Cross или научите быть не быдло кодером

Сообщение gpv123 »

Alazaur, лично я сразу понял, что тут лучше использовать одномерный массив. Выглядит как-то так:

Изображение

UPD: i равно гигантскому числу в клетке
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Criss-Cross или научите быть не быдло кодером

Сообщение Alazaur »

gpv123, это как раз ты приводишь пример вывода сетки в графических целях. С этим вопросов нет. Я имею ввиду другое.
Например есть сетка 100 x 100, каждая клетка имеет свойство проходима/непроходима. И стоит у меня юнит в какой-то клетке. Как мне имея сетку в одномерном массиве узнать какие вокруг него клетки проходимы, а какие нет.
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Criss-Cross или научите быть не быдло кодером

Сообщение Casperovskii »

Alazaur
Будь бобр, можешь в личку ответить, че мутишь? Потому что я такой движок мутил на C++, только у каждой клетки было 4 свойства - проходима ли каждая её граница (делал это, чтобы была возможность разноуровневых объектов и для спрыгивания). Поле было 50х50 и генерилось порядка минуты (на слабеньком компе).

Сорь за оффтоп, но да - в графических целях быстрее так, а в прогерских - никак нет.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Criss-Cross или научите быть не быдло кодером

Сообщение Alazaur »

Casperovskii писал(а):Alazaur
Будь бобр, можешь в личку ответить, че мутишь?
Ничего не мучу, это я привел просто как пример :)))

gpv123, ты не подумай что я цепляюсь к этому способу построения или еще что))) Просто здесь ТС посоветовали построить сетку именно так несмотря на то что цели у него как раз таки программные. Вот я и думаю, если имеются такие возможности у "одномерной сетки" и они окажутся быстрее чем у "двухмерной" то я бы переписал некоторые алгоритмы из своих загашников)))
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Criss-Cross или научите быть не быдло кодером

Сообщение sanych_dv »

Воспринимайте массив в AS3 как объект и все значительно упростится. Одномерные они там или многомерные - это дело десятое. Важно представлять объект просто как пару "ключ => значение", в котором значением может быть что угодно, в том числе другой объект, с возможностью любого расширения своих значений. А, к примеру, в объекте Dictionary и ключом может быть что угодно. Если надо "быстрее", то используются типизированный массив Vector.<TYPE>, все элементы которого относятся к одному типу.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Criss-Cross или научите быть не быдло кодером

Сообщение 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 
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Criss-Cross или научите быть не быдло кодером

Сообщение Alazaur »

sanych_dv, спасибо конечно, но что такое массивы, объекты и вектора и как их использовать я знаю) Вопрос был далеко не в этом.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Criss-Cross или научите быть не быдло кодером

Сообщение sanych_dv »

Ну раз знаете, то считайте, что это написано не для вас.
Ответить