• as3数组不重叠随机排序


    在写一个游戏时...要用到这样的排序....贴出来,,大家一起分享下............

    package{
        import flash.display.Sprite;
        /**
         *
         * @author playerlife
         *
         */
        public class TestRandomArray extends Sprite{
            public function TestRandomArray() {
                var arr : Array = ["a", "b", "c", "d", "e", "f"];
                var arr2 : Array = ["aa", "bb", "cc", "dd", "ee", "ff"];
                var tmp : Array = randomSort2(arr, arr2)
                    trace(tmp[0], tmp[1]);
            }
            
            //2个数组不重叠随机排序
            public function randomSort2(arg1 : Array = null, arg2 : Array = null) : Array{
                var len : int = arg1.length;
                var arr1 : Array = [];
                for (var i : int = 0; i < len; i++) {
                    arr1[i] = i;
                }
                var arr2 : Array = [];
                arr2 = randomSort(arr1); //打乱
                var arr3 : Array = [];
                for (var m : int = 0, n : int = len - 1; m < len, n >= 0; m++, n--) //反转
                {
                    arr3[m] = arr2[n]
                }
                var arr4 : Array = [];
                var arr5 : Array = [];
                for (var j : int = 0; j < len; j++) {
                    arr4[j] = arg1[arr2[j]]
                        arr5[j] = arg2[arr3[j]]
                }
                return [arr4, arr5]
            }
            
            //数组随机排序
            public function randomSort(targetArray : Array) : Array{
                var arrayLength : Number = targetArray.length
                    var tmpArr1 : Array = []
                    for (var i : int = 0; i < arrayLength; i++) {
                        tmpArr1[i] = i
                    }
                    var tmpArr2 : Array = []
                    for (var j : int = 0; j < arrayLength; j++) {
                        tmpArr2[j] = tmpArr1.splice(Math.floor(Math.random() * tmpArr1.length), 1)
                    }
                    var tmpArr3 : Array = []
                    for (var k : int = 0; k < arrayLength; k++) {
                        tmpArr3[k] = targetArray[tmpArr2[k]]
                    }
                    return tmpArr3
            }
        }
    }
  • 相关阅读:
    杭电1176解答免费馅饼
    Locust 关联
    Locust 参数化
    Locust 介绍篇
    Locust 集合点
    Locust 其他协议
    团队项目需求分析报告
    第一次个人编程作业
    团队项目选题报告
    第一次软工作业
  • 原文地址:https://www.cnblogs.com/playerlife/p/2727401.html
Copyright © 2020-2023  润新知