Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.11.2011, 23:19
Ookami вне форума Посмотреть профиль Отправить личное сообщение для Ookami Найти все сообщения от Ookami
  № 11  
Ответить с цитированием
Ookami
 
Аватар для Ookami

Регистрация: Aug 2011
Адрес: 56° 51' с.ш. 53° 13' в.д.
Сообщений: 172
Записей в блоге: 1
С векторами не совсем все понятно, но до них очередь еще дойдет. Спасибо за развернутые ответы.

Старый 07.11.2011, 00:28
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 12  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Если все-таки использовать Array для ассоциативного массива, какие негативные последствия могут быть?
Коллега использовал Array в качестве хеша для айдишников ВКонтакта (тогда они умещались в int) в каком-то провайдере. Эффект потрясающий - сжирало 700 Мб оперативы за 3 секунды работы флешки. Как только заменили на Object - чудесный эффект пропал.

Если, конечно, строковые ключи в Array использовать - то память жрать не будет, но и смысла как-бы нет использовать Array в этом случае вместо Object


Последний раз редактировалось expl; 07.11.2011 в 00:31.
Старый 07.11.2011, 01:23
Ookami вне форума Посмотреть профиль Отправить личное сообщение для Ookami Найти все сообщения от Ookami
  № 13  
Ответить с цитированием
Ookami
 
Аватар для Ookami

Регистрация: Aug 2011
Адрес: 56° 51' с.ш. 53° 13' в.д.
Сообщений: 172
Записей в блоге: 1
Еще вопрос возник. В процессе заполнения матрицы и последующей работы с ней необходимо проверять значения в заданной ячейке и в соседних ячейках (по вертикали и горизонтали). Если матрица уже создана и заполнена то проблем нет, а если только создается - то вылетает ошибка, описанная выше, так как ячейки выше и левее еще не существуют. Не хотелось бы делать две функции проверки - отдельно для новой матрицы и отдельно для существующей. Как можно выйти из положения, кроме заполнения всех ячеек матрицы на этапе инициализации нулями?

Старый 07.11.2011, 01:33
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если размерность "матрицы" известна заранее, то создавать массивы с размерностью, тогда ячейки "будут", со значением undefined (если не ошибаюсь). То есть их можно будет проверять, не проверяя существование их самих.
__________________
Reality.getBounds(this);

Старый 07.11.2011, 01:56
Ookami вне форума Посмотреть профиль Отправить личное сообщение для Ookami Найти все сообщения от Ookami
  № 15  
Ответить с цитированием
Ookami
 
Аватар для Ookami

Регистрация: Aug 2011
Адрес: 56° 51' с.ш. 53° 13' в.д.
Сообщений: 172
Записей в блоге: 1
Да, это помогло решить проблему, спасибо. Но возникла следующая проблема =) В принципе ничего сложного - массив заполняется случайными числами от 1 до 6. Надо сделать проверку, чтоб не было трех и более одинаковых чисел подряд по вертикали и горизонтали. Сложность в том, что проверять приходится ячейки с индексами [n+2] и [n-2] - на краях матрицы вываливается ошибка о несуществующем элементе, как и выше. Может быть есть готовый алгоритм для таких проверок? А то не хотелось бы расписывать условия для каждого возможного варианта - левый край, правый край, и тп когда индекс оказывается за границей массива.

Старый 07.11.2011, 03:18
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 16  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Матч 3? =)
Это придётся массивчики помучать таки и голову включить) На такое нет алгоритмов (хотя в сети всё может найтись).
"Назад" проверять смысла нет, сзади всё уже проверено и не может быть неправильно. От [n] до [n + 2] только. Если MxN массив, то цикл проверки на 3 по горизонтали делается до M-2 (по вертикали N) и цикл проверки по вертикали аналогично. Можно слить в один цикл, просто сделать условие типа "если при проверке текущих координат будет вылезание, то проверку не проводить, считать, что она прошла успешно".
А вообще нет ничего сложного и в "расписывании вариантов". Вариант на самом деле всегда один, просто делать проверку на вылезание надо всегда и если за массивом, то не пытаться достать значение)
Есть ещё фокус, когда делаешь массив "с бордюрчиками", т.е. большего размера, чем надо, чтоб проверки только на бордюрчики могли залезть) Но ни разу их после школы не использовал.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 07.11.2011, 03:50
Ookami вне форума Посмотреть профиль Отправить личное сообщение для Ookami Найти все сообщения от Ookami
  № 17  
Ответить с цитированием
Ookami
 
Аватар для Ookami

Регистрация: Aug 2011
Адрес: 56° 51' с.ш. 53° 13' в.д.
Сообщений: 172
Записей в блоге: 1
Насчет матч3 угадали, да и во всем остальном все верно - так и поступил. Идею с "бордюрчиками" отмел сразу как бредовую и не оптимальную =)
Готовые алгоритмы в сети нашлись, но половина из них как-раз с бордюрчиками =) Вообще неплохая подборка исходников нашлась по этой ссылке http://igdc.ru/igdc_top.php?allkonkurs (4 строчка Bejeweled)

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
array , object , Vector , двумерный массив , матрицы
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:14.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.