Форум 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)
-   -   as2: как перемешать массив? (http://www.flasher.ru/forum/showthread.php?t=78951)

Mnilionic 28.04.2006 02:48

as2: как перемешать массив?
 
как лучше перемешать массив?
я делаю так:
Код:

function Shuffle(x) {
        var tmp = x.concat();
        var new_x = new Array();
        while (tmp.length>0) {
                var rnd = random(tmp.length);
                new_x.push(tmp.splice(rnd, 1));
        }
        return new_x;
}

b = ["a", "b", "c", "e", "f"];
b = Shuffle(b);
trace(b);

но когда много и часто начинает тормозить.

MIX-er 28.04.2006 03:11

сори, но зачем????

7thsky™ 28.04.2006 03:53

карточные игры например...

Mnilionic 28.04.2006 04:15

MIX-er, знаешь как по другому?

son_of_war 28.04.2006 08:10

попробуй так
Array.prototype.shuffle = function()
{
for (var i=0; i<this.length; i++)
{
var x = random(this.length);
var tmp = this[x];
this[x] = this[i];
this[i]=tmp;
}
}

Juice_Green 28.04.2006 10:30

попробуй, так еще проще:

Код:

var arr:Array = [1, 2, 3, 4, 5];
function randsort(x:Number, y:Number):Number {
        if (zn = Math.random() > 0.5)
                return 1;
        else
                return -1;
        }
       
arr.sort(randsort);
trace(arr);


K.A.T.A.F.A.L.K.E.R 28.04.2006 10:40

Код:

function res(x:Number, y:Number):Number {
    return 1-2*Math.round(Math.random());
}
a.sort(res);



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

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