Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   алгоритм random - как сделать аналог randomа без random? (http://www.flasher.ru/forum/showthread.php?t=147766)

uchenik12345 13.12.2010 18:08

алгоритм random - как сделать аналог randomа без random?
 
есть баннеры, в них всякие мигалки и прочая случайная фигня.
оказывается код где встречается random автоматически банится без разборов на стороне адвертизера.
Баннеров фигова гора и переделывать нет смысла, надо заменить random(n) на самописную функцию, например _root.rrr(n).
(исходить от date.milliseconds не годится, порой надо в один момент десяток разных значений).
Кто нибудь знает как написать простенький рандом?

drnet_ua 13.12.2010 18:27

да их полно

разберитесь как они работают и проблем никаких

шаманте с date.milliseconds и последним сгенерированным числом например

в блог мне глянте как вариант

Psycho Tiger 13.12.2010 18:37

Цитата:

оказывается код где встречается random автоматически банится без разборов на стороне адвертизера.
А как?

terbooter 13.12.2010 19:39

Сгенерите длинную рандомную строчку и захардкодте ее во флешку.
Далее вычитывайте попорядку и покругу.

dark256 13.12.2010 19:48

"код где встречается random автоматически банится без разборов на стороне адвертизера."

Это как? Баннер декомпилится и проверяется чтоли?

uchenik12345 13.12.2010 20:25

Цитата:

Это как? Баннер декомпилится и проверяется чтоли?
Думаю скорее всего да. Мож выборочно или зависит от чего, но уже бывали претензии по их requirements. Как и этот долбанный код с ClickTag. Один адвертизер хочет один код, другой другой, если их обьеденить if-ами все, конец света и бан. Вот и переделывай тысячи баннеров...

Про date.milliseconds я уже говорил. Если мне надо раскидать звездное небо в одном цикле, я не вижу помощи в миллисекундах. Для варианта 1 рандома да, а когда их в одном кадре 10? Представьте что есть 80-100 баннеров, 35 размеров каждый, на 10 языках каждый. В одном 5 всяких радномов, в другом 10 и в одном кадре. В одном звездочки по кругу разного размера летают, в другом надо при открытии случайный город из списка в 10 штук показать... Я не хочу разбираться зачем они все, я хочу сделать replace all "random(" "_root.rrr(" и чтоб работало на все варианты.
Генерить строку можно, но это топорный подход. В одном случае надо random(10), в другом random(1000).

terbooter 13.12.2010 20:32

Топорно немного =), но лучше чем слушать микрофон уж точно.

Psycho Tiger 13.12.2010 20:34

Что за бред. "Нельзя генерировать небо программно с использованием Math.random. Но если Вам очень хочется создать звёздное небо со случайными звёздами Вам придётся реализовать свой аналог Math.random..."

uchenik12345 13.12.2010 20:46

Бред, но вы не представляете как строго проверяются баннеры. Если попадается слово random в коде, дальше банится сразу вся пачка без разборов зачем оно там. Попалось и точка. Адверизеры никогда ни в чем не разбираются, типа это твои проблемы и нарушения.
Я например не удивлюсь за бан если код на кнопку в одну строку напишешь.

terbooter 13.12.2010 20:47

Прочитал внимательнее почему не годится date.milliseconds.
Я бы на вашем месте использовал именно его.
А затем прогонял чере пару функци, а третья функция выдавала старт и стоп индекс результата первой

Psycho Tiger 13.12.2010 20:48

Адвизерам придется ещё найти этот Math.random. Если банер обфусцировать - эту строчку никто и не найдёт.
Например Math["rand"+"om"](). а "random" криптуйте, например, добавлением числа 2 к каждой букве. А потом собирайте методами String.

terbooter 13.12.2010 20:50

Ну вот и самое правильное решение =)

uchenik12345 13.12.2010 21:11

на скорую руку накидал нечто такое топорное:
Код AS1/AS2:

tipasluch = [75,66,42,23,26,43,58,55,33,27,14,23,51,36,52,63,52,5,66,83,73,71,51,30,21,12,18,58,78,31,34,89,77,73,78,76,1,64,24,90,80,92,39,48,7,94,3,45,66,87,76,79,30,0,67,40,80,69,68,39,21,53,61,54,62,66,11,68,96,71,71,21,28,31,84,3,12,77,32,9,49,53,71,62,1,47,46,47,84,9,26,98,34,7,90,9,26,97,2,76,99,0,26,37,33,66,7,82,90,46,2,82,26,41,84,79,8,60,79,16,11,62,46,52,4,14,36,92,40,33,82,51,11,40,0,50,27,51,23,46,83,88,69,89,96,56,71,18,19,12];
sluchddd = new Date();
nomersluch = int(sluchddd.getMilliseconds()/6.66); // 1000/tipasluch.length
function rrr(arg) {
        nomersluch++;
        if (nomersluch>tipasluch.length) nomersluch=0;
        return int(tipasluch[nomersluch]*arg/100);
}

только не парьте всякими public, обьявлениями rrr(arg:int):int или подобным, в данном случае не интересует.

Добавлено через 6 минут
гы, можно, но стремно :)
фиг знает как они там смотрят. Мож вообще дизассемблер какой пишет что в мувике задействован рандом.
Поновой переделывать 5000 баннеров нехоцца.

dark256 14.12.2010 01:45

Просто интересно уже, а чем эти Азверяйзеры мотивируют неиспользование рандома???
Может они под этим соусом ждут, чтобы юзера им сгенерили новый код рандомайзера?
Типа такое легкое академическое исследование закамуфлированное слегка под тех.требования...
Первый раз такой бред слышу.......
Сгенерите текстовый фалй на пару мегабайт рандомно, в баннер его потом грузите с сайта, а произвольная точка входа - по таймеру :)))))))))))

uchenik12345 14.12.2010 03:16

кому интересно, помимо части первой их requirements.
Нарушение приводит к бану без обьяснения причин:

2. Animation
2.1 Max duration 15 s then static (max 3 loops x 5 s/loop)
2.2 15-20 fps frame rate
(по моему тоже бред)

2.3 Strobing & Flashing. Don't use strobe animation. Strobing, flashing backgrounds, or otherwise distracting ads are not allowed.
2.4 Keep animation smooth and fluid, using slow motion and gentle fades. Fast and abrupt motion is highly irritating.

3. Flash
3.1 All Flash ads must be published for Flash Player version 4-8.
3.2 Actionscript version 1 - 2 is acceptable.
(Баннеры на AS3, хотя АS3 это совсем не для баннеров, гигантам адвертизенга типа гугля и подобных не нужны)
3.3 Ad code cannot make external server calls for additional Javascript or other functionality. All functionality must be localized to the code itself.
3.4 Forbidden to change the behavior of ad to avoid or eliminate the redirect URL.
3.5 The ad should direct users to a web page with the appropriate destination URL. It should not open the destination URL within the ad IFrame itself.
3.6 Audio not allowed (YouTube).
3.7 Do not include code that generates or uses random numbers.
Почему незнаю, но факт, отправили всю кучу назад.

Добавлено через 4 минуты
баннер макс. 30кб, (21 век на дворе, а тут 500х500 в 30кб...) так что никаких подгружаемых мегабайт :)

drnet_ua 14.12.2010 13:14

в таком случае масив подлиннее и перебирать с милисекондами - нихрена не случайно, но подходит :)

с другой стороны это то-же вариации на тему "code that generates or uses random numbers", заругают

а так как они требуют исключительно 4-8, АС1-2 то код будет как на ладони.

обфукатором обработаете - заподозрят не ладное.

кругом враги

dark256 14.12.2010 19:12

да уж.... это что-то с чем-то просто таки.... Сочуствую, что такие "смежники" :(

Alex_YAROST_22 22.06.2011 18:27

Сори что апаю но может кому-нить да пригодится.

Нужен так называемый линейно-конгруэнтный метод получения псевдослучайного числа.

Вот линк http://ru.wikipedia.org/wiki/%D0%9B%...82%D0%BE%D0%B4

Формула очень проста в реализации.


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

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