我创建了三个数组,每个数组都有自己的一组问题。每次游戏开始时是否可以洗牌这三个数组?这样用户每次点击新游戏时都必须回答不同的问题。
问问题
73 次
2 回答
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);
我希望这有帮助。
于 2014-03-23T02:31:37.273 回答
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));
于 2014-01-16T12:29:04.400 回答