在actionscript -2中将数组洗牌

时间:2011-05-10 05:18:12

标签: actionscript-2

为了生成宾果票据生成器,我需要改组阵列。

当我按下按钮时,我应该从数组中检索值(例如array(1,2,3,4,5,6,7,8,9))。我

如果我先回溯五个随机值可能是2 5 7 4 8。如果再次按下该按钮,则应该执行除先前已重试的值(例如1 3 9 6 7

以外的其他值

1 个答案:

答案 0 :(得分:0)

我不知道你是否被允许修改输入,但为什么不尝试这样的事情:

// passing your array as argument
// passing the total number you want to extract as argument
function getRandNumbers( a:Array, requested_numbers:Number ):Array
{
    // verify we don't request to much numbers
    if ( requested_numbers > a.length ) 
    {
       trace( "Not enought available numbers in array" );
       return null;
    }

    results_array = new Array(); // create our output array
    while( results_array.length < requested_numbers )
    {
       rnd = Math.floor( Math.random() * a.length );
       results_array.push( a[rnd] );
       a.splice( rnd, 1 ); // remove the random result
    }

}

现在您确定每次调用getRandNumbers时,您的数组将只包含未使用的数字。