// Este exemplo mostra como embaralhar a ordem
// dos elementos de um array. Veja que estamos
// usando alguns métodos auxiliares.
var valores:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// vamos embaralhar os elementos
valores = embaralhar(valores);
var res:String = "Valores do array:\n\n";
// vamos percorrer os elementos do array
for(var i:int = 0; i < valores.length; i++){
res += valores[i] + "\n";
}
Alert.show(res);
// métodos auxiliares para embaralhar os elementos
public static function embaralhar(aArray:Array):Array{
var aCopy:Array = aArray.concat();
var aRandomized:Array = new Array();
var oElement:Object;
var nRandom:Number;
for(var i:Number = 0; i < aCopy.length; i++) {
nRandom = randomico(0, aCopy.length - 1);
aRandomized.push(aCopy[nRandom]);
aCopy.splice(nRandom, 1);
i--;
}
return aRandomized;
}
public static function randomico(
nMinimum:Number, nMaximum:Number = 0,
nRoundToInterval:Number = 1):Number{
if(nMinimum > nMaximum) {
var nTemp:Number = nMinimum;
nMinimum = nMaximum;
nMaximum = nTemp;
}
var nDeltaRange:Number = (nMaximum - nMinimum) +
(1 * nRoundToInterval);
var nRandomNumber:Number = Math.random() *
nDeltaRange;
nRandomNumber += nMinimum;
return Math.floor(nRandomNumber);
}
// fim métodos auxiliares