Форум 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)
-   -   Рандом (http://www.flasher.ru/forum/showthread.php?t=84805)

inviss 08.09.2006 13:46

Рандом
 
Есть массив и рандомное число в его пределах
как сделать чтобы рандомное число не повторялось пока не переберется весь массив?

motor4ik 08.09.2006 13:49

понятно что ничего не понятно )

Juice_Green 08.09.2006 13:57

проще перефразировать задачу на "Отсортировать массив по рандому" и воспользоваться поиском

inviss 08.09.2006 13:59

а че нипонятно?
есть массив
mass[1] = 10;
mass[2] = 20;
...
mass[n] = 30;

генерится случайное число
var k = Math.ceil(Math.random()*n);

выводим
trace(mass[k]);

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



в поиске я ничего не нашел :(

iNils 08.09.2006 14:09

Плохо искали.
Код:

len = 30;
arrayA = [];
for (var i = 0; i < len; i++) {
        arrayA[i] = i;
}
arrayB = arrayA.concat ();
for (var i = 0; i < len; i++) {
        var r = Math.floor (Math.random () * arrayB.length);
        trace (arrayB[r]);
        arrayB.splice (r, 1);
}


motor4ik 08.09.2006 14:10

1- удаляй элементы из массива )
2-свойство элементу 0 и 1 , если 1 значит было генерим заново )
3-есть намного лучшие варианты в поиске

Juice_Green 08.09.2006 14:18

2 inviss:
наберите в поиске "Сортировка массива" и сразу увидите много интересного

inviss 08.09.2006 22:38

не все не то или я чегото не понял

вот мой код

Код:

function show_movie()
{
        // номер мувика
        var $num = Math.ceil(Math.random()*4);
       
        // массив координат
        var clip_x:Array = new Array();
        clip_x[0] = 81;
        clip_x[1] = 185;
        clip_x[2] = 290;
        clip_x[3] = 394;
        clip_x[4] = 497;
        clip_x[5] = 602;

        arrayB = clip_x.concat ();
        for (var i = 0; i < 5; i++) {
                var r = Math.floor (Math.random () * arrayB.length);
                trace (arrayB);
                arrayB.splice (r, 1);
        }
       
        // подгружаем мувик
        var $clip = _root.attachMovie("movie_"+$num, "newName", _root.getNextHighestDepth());
       
        //Расположение в произвольной точке сцены
        var k = Math.ceil(Math.random()*6);
        $clip._x = clip_x[k];
        $clip._y = int(53);       

       
}

int1 = setInterval (show_movie(), 10);

не получается у меня рандомно и уникально грузить мувики и все тут

iNils 09.09.2006 00:06

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

inviss 09.09.2006 01:32

чете ничего не получается :(
и еще на главной сцене я сделал 3 слоя
1 это рамка
2 это этот скрипт
3 это фон

так вот при аттаче почему то все подгружаемые слои грузятся сверху а не под рамкой как в таймлайне
и еще через какое то время начинает бробиватсья слой квадратиком вогруз подгружаемого объекта - что за глюк такой?


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

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