自己写的一个数组乱序实例。
代码如下 | 复制代码 |
var _arr:Array=new Array(9,8,7,6,5,4,3,2,1); |
先定义一个带有两个形参的函数,表示数组冒泡排序时的两个比较的元素,该函数返回1,0,-1的随机值,通过每次比较时所得到的不同随机值来排序,实现打乱顺序,我选择了数组中一个元素(一张牌)来trace()牌的序号,发现乱序不是很彻底,就想到是否应让用于乱序的函数返回的值有更多的可能,再trace()一下,乱得比较彻底了,改过后的情况如下:
代码如下 | 复制代码 |
function sortF(a:MovieClip,b:MovieClip):int { return int(Math.random()*52);//乱序用,增加了返回值的范围,便于更加彻底的乱序 } mcArr.sort(sortF); trace(mcArr[0].i); |
另附一段可以正常测试的代码:
代码如下 | 复制代码 |
var arr:Array=[]; for (var i:int=0; i<30; i++) { arr[i]=i; } trace(arr); function sortF(a,b):int { return Math.floor(Math.random()*3-1);//将*3改为*30试试,效果要好得多 } arr.sort(sortF); trace(arr); |