16.06.2014, 00:44
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Ну да рандом не нужен. К моменту когда будут использованы последние айдишники - первые уже по любом должны освободиться.
getId = function(id){
return function(){
return (++id[0]).toString(36)
}
}(new Uint16Array(0))
65536 значений))
__________________
29375, 35
Последний раз редактировалось Aetae, 16.06.2014 в 00:49.
|
|
16.06.2014, 01:48
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
Сообщение от Poznakomlus
|
php spl_object_hash
|
у меня node.js
Сообщение от l-liava-l
|
нафига какое то ограничение? закончилась сессия обнулил, и усе
|
а если сессия будет полчаса))
Aetae,
да, как вариант.
Но не хотел бы использовать какие-то лишние данные - это может в будущем создать проблемы! Значения 1679615, 65536, 9999 - делают код нелогичным, не хотелось бы так делать)
|
|
16.06.2014, 01:54
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
а если сессия будет полчаса))
|
Тебе же понравилась дата)) там большие числа
60 * 60 = 3600 если одна пуля в секунду за час, соответсвенно 360000 если каждый из 100 человек выстрелит в секунду.... это много что ли?))
__________________
Научу себя плохому
|
|
16.06.2014, 01:57
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
"65536 хватит на всех", ага.)
Ну можно впихнуть Uint32 - 4294967295 то точно хватит, только тут 4мя символами не ограничишься.)
Только вот подход с рандом не имеет ни малейшего преимущества перед подобными итераторами.
__________________
29375, 35
Последний раз редактировалось Aetae, 16.06.2014 в 02:01.
|
|
16.06.2014, 10:02
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
С чем связано ограничение по длине id? Скорость доступа к id = a111 меньше, чем к id=a999938? На сколько?
Похоже на экономию на спичках. Видится мне, что тормоза в игре будут связаны с чем-то другим, но не с генерацией id или их длинной. Хотя мне не понятно зачем генерить id, если можно брать их из диапазона?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
16.06.2014, 16:11
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
Сообщение от Gozar
|
С чем связано ограничение по длине id? Скорость доступа к id = a111 меньше, чем к id=a999938? На сколько?
|
Это связано с весом данных, которые передаются по сети.
Думаю, максимальная длина id не должна превышать 3-х символов!
В base 36 3 символа дают 1679616 различный айдишников
|
|
16.06.2014, 16:28
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
Это связано с весом данных, которые передаются по сети.
Думаю, максимальная длина id не должна превышать 3-х символов!
|
а юзать точно так же итерацию. например есть idшки:
999111
999112
999113
999114
999115
Возьми допустим из этого большого числа 9991 и отправь на сервер как префикс,
а потом мелкими пачками посылай
15 16 17 18 19... 99
потом отправляешь новый 9992 и заного
00 01 02 03 04 05
Все будет удобно упорядчено
Хотя я кажется упорот
__________________
Научу себя плохому
Последний раз редактировалось l-liava-l, 16.06.2014 в 16:30.
|
|
16.06.2014, 17:11
|
|
Профессор
|
|
Регистрация: 26.03.2012
Сообщений: 823
|
|
l-liava-l,
зачем так усложнять? )
Гораздо проще:
999111 .toString(36) // 'lex3'
999112 .toString(36) // 'lex4'
999113 .toString(36) // 'lex5'
999114 .toString(36) // 'lex6'
|
|
16.06.2014, 17:15
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Массив пуль, добавляем в конец, берем с конца. Никаких переборов, никакого поиска и рандомной генерации. Пули генерятся в начале боя в массив.
Скорость работы с концом массива не знаю. Стек
Увеличиваем стек, увеличивается количество игроков.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|