XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
p01nTT

offline
Опыт: 11,160
Активность:
Что лучше?
Что лучше - присвоить через RB+cache игроку переменную типа integer или создать массив и в него её записать? Нужно для нескольких игроков.

p01nTT добавил:
Переменных может быть около 8-ми(либо 8 массивов глобальных переменных, либо восемь записей в кэш на каждого игрока)
Старый 17.11.2006, 12:37
adic3x

offline
Опыт: 108,439
Активность:
Если для одного значения ( к примеру фраги игроков ) то делаеш массив :
udg_Фраги [номер игрока] = ...
Старый 17.11.2006, 12:42
J
expert
offline
Опыт: 48,447
Активность:
p01nTT непонял... если тебе нужно присвоить 8 чисел, по одному на соответствующего игрока, то это можно сделать через обычный массив, записиваеш туда переменую в ячейку соответствующую номеру игрока.

Если присвоить каждому игроку надо 8 чисел то уже разумнее будет использовать RB+cache, но если у тебя они деномически изменяются/используются то уж лучше тогда через масивы... ради скорости.
Старый 17.11.2006, 14:07
p01nTT

offline
Опыт: 11,160
Активность:
Jon А можешь объяснить,почему все так не любят глобалки? И объясни,где лучше хранить данные,которые не будут изменятся во время игры на этой карты?
Старый 17.11.2006, 14:26
J
expert
offline
Опыт: 48,447
Активность:
p01nTT если не будут изменятся то лучше кеш, если изменятюся но не часто.. то лучше кеш... если часто изменяются (0,01-0,04) и их много.. то лучше масив...
глобальные масивы не любят тем что они одномерны, а кеш любят потомучто что он двухмерен... но глобалки работают быстрее кеша

Отредактировано Jon, 17.11.2006 в 14:45.
Старый 17.11.2006, 14:36
p01nTT

offline
Опыт: 11,160
Активность:
Jon ок, понял можно клозать тему.
Старый 17.11.2006, 14:43
DioD

offline
Опыт: 45,134
Активность:
кеш нужен только если данные храняться построкам, 2х массив можно сделать сложив его попалам несколько раз
8192 == 4096*2 == 2048*4 == 1024*8 == 512*16
того для восми измерений можно взять 1 массив и тогда будет 512 объектов на измерение, чего вполне достаточно

Отредактировано DioD, 18.11.2006 в 16:47.
Старый 18.11.2006, 15:04
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
2048*4 == 1024*4

2-а тебе по математике
Старый 18.11.2006, 16:19
DioD

offline
Опыт: 45,134
Активность:
хахаха я пропустил степень, щас исправлю.
ну короче 1024 == 2^10 от этого можно плесать
2^10 == 2^5*2^5
таким хитрым образом можно выбывать множители измерений легко и просто
2^12 == 2^3*2^3*2^3*2^3
таким образом 4 измерения и так далее
Старый 18.11.2006, 16:46
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
2^12 == 2^3*2^3*2^3*2^3

так ты используеш пол масива, если использовать весь.. то это уже будет 5 измерений... так? Я принцепи в этом не селен...

Отредактировано Jon, 18.11.2006 в 17:08.
Старый 18.11.2006, 17:01
DioD

offline
Опыт: 45,134
Активность:
нужно что-бы степень делилась ровно 13 степень ни туда ни сюда, поэтому юзаю иной механизм деления
8192*1==4096*2==2048*4==1024*8==512*16==256*32==128*64==2*64*64
как видно можно сделать двумерный массив с зеркалом, каждой ячейке будет по 2 значения
тоесть в первой ячейке инфа во второй номер следующей ячейки и так по цепочке
556(0)==юнит 1
556(1)==номер ячейки
999(0)==юнит 2
999(1)==номер ячейки
так можно делать группы юнитов полностью на массиве без ограничения по размеру.
Старый 18.11.2006, 17:42
p01nTT

offline
Опыт: 11,160
Активность:
DioDВсё решил массивы не юзать,кэшем привычней )), клозайте тему.
Старый 18.11.2006, 20:49
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:49.