每次比赛开始时,是否有可能将这三个数组洗牌?

时间:2014-01-16 09:12:43

标签: actionscript-3 flash-cs5.5

我创建了三个数组,每个数组都有自己的问题集。每次比赛开始时,是否有可能将这三个数组洗牌?这样每次用户点击新游戏时,用户都必须回答不同的问题。

2 个答案:

答案 0 :(得分:0)

参见例如:

第二个对Array.sort()

的使用很少
var arr:Array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

function randomize (a:*, b:*):int
{
    return (Math.random() > .5) ? 1 : -1;
}

trace(arr.sort(randomize));

答案 1 :(得分:0)

要对3个数组进行随机播放,您可以创建3个其他数组,用于保存随机值。

var arr1:Array = [1, 2, 3, 4, 5];
var sorted1:Array = new Array(arr1.length);
var arr2:Array = [1, 2, 3, 4, 5];
var sorted2:Array = new Array(arr2.length);
var arr3:Array = [1, 2, 3, 4, 5];
var sorted3:Array = new Array(arr3.length);

randomPos:Number = 0;
然后,您可以创建一个函数,该函数从一个数组中获取值并将其放入一个新的混洗数组中。

function shuffleArray(x, y){
    for(var i:int = 0; i < y.length; i++){
        randomPos = int(Math.random() * x.length);
        y[i] = x.splice(randomPos, 1)[0];
    }
}

然后你将在每组数组上调用suffleArray函数:

shuffleArray(arr1, sorted1);
shuffleArray(arr2, sorted2);
shuffleArray(arr3, sorted3);

我希望这会有所帮助。