⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myrandom.as

📁 Flex3实现的掼蛋游戏
💻 AS
字号:
/*
随机数 相关的类
*/
package com.dmh2002.util{
	public class MyRandom {
		/* 
		 * 生成一个用于url防缓存的随机参数
		 * 随机数大小范围为0-10000
		 * 返回一个 uint
		 */
		public static function randomUrlVariable():uint {
			return Math.round(Math.random() * 10000);
		}
		/*
		 * 给入一个数量,给出一个数组
		 * 数组中为一组数字,数字自0开始至 (数量-1)
		 * 数组为一个随机数组
		 * trace(random_num(3))  //1,2,0
		 * trace(random_num(14)) //6,4,12,0,2,3,5,10,9,11,1,7,13,8
		 */
		public static function randomNumbersArray(nums:uint):Array {
			var _array:Array = new Array ();
			var i:uint = 0;
			while (i < nums) {
				_array[i] = i;
				i++;
			}
			return (randomArray(_array));
		}
		/* 
		 * 给入一个数量,给出一个数组
		 * 数组中为一组数字,数字自0开始至9
		 * 数组中的数量为 参数指定的数量,最大不能超过10
		 */
		public static function randomNumbersFormSingleNumbersArray(nums:uint):Array {
			nums=Math.min(nums,10);
			nums=Math.max(nums,0);
			var _formArray:Array=randomNumbersArray(10);
			var _array:Array=new Array(nums);
			for (var i:uint=0; i<nums; i++) {
				_array[i]=_formArray[i];
			}
			return _array;
		}
		/* 
		 * 将作为 参数 传入的 数组
		 * 返回一个打乱顺序的数组
		 * 例如 var _array:Array=new Array(4,5,6)
		 * 返回 5,6,4
		 */
		//给入一个数组,返回一个打乱顺序的数组
		public static function randomArray(inputArray:Array):Array
		{
			var cf:Function = function ():int 
			{
				var r:Number = Math.random() - 0.5;
				if (r < 0) 
				{
					return -1;
				}
				else 
				{
					return 1;
				}
			}	
			var resultArray:Array = MyArray.clone(inputArray) as Array;
			resultArray.sort(cf);
			
			return resultArray;
		}
		//
//		public static function randomArray(array:Array):Array {
//			var t:Array = array.concat();
//			var $lim:uint=array.length;
//			var l:Number = t.length;
//			var e:Number = ($lim && $lim < (l-1)) ? ($lim+1) : l;
//
//			while (--e) {
//				var r:Number = randomBetweenTwoNumbers(l--);
//				t[r] = t[l] | (t[l] = t[r]) & 0;
//			}
//			return t.slice(- $lim);
//		}


		/* 
		 * 从参数ary(数组)中随机返回一个 数组项
		 * 例如 var _array:Array=new Array(4,5,6)
		 * 返回 5或者6或者4
		 */
		public static function randomExtract(ary:Array):* {
			return (ary[Math.floor(Math.random() * ary.length)]);
		}
		/* 
		 * 给入2个数字
		 * 返回从 数字1 到 数字2 之间的数组
		 * 并且为随机
		 * trace(random_num2(4,8))
		 * 返回 4,6,7,5,8
		 */
		public static function randomBetweenTwoNumbersArray(n1:int, n2:int):Array {
			var _array:Array = new Array ();
			var i:int = n1;
			while (i<= n2) {
				_array.push(i);
				i++;
			}
			return randomArray(_array);
		}
		/**
		     *  生成一个介于 参数1 和 参数2 之间的随机数,精度为参数3
		     *  @param  minimum            最小值
		     *  @param  maximum            最大值,如果缺少默认为0
		     *  @param  精度                默认值为自然数
		     *  @return                     一个随机数
		 *  randomBetweenTwoNumbers(0,100)//0-100的随机数
		 *  randomBetweenTwoNumbers(0,100,5)//0-100的5的倍数随机数
		 *  randomBetweenTwoNumbers(-1,1,.05)//-1至1的随机数,精确到百分之5
		     */
		public static function randomBetweenTwoNumbers(nMinimum:Number,nMaximum:Number=0,nRoundToInterval:Number=1):Number {

			// If the minimum is greater than the maximum, switch the two.
			if (nMinimum > nMaximum) {
				var nTemp:Number=nMinimum;
				nMinimum=nMaximum;
				nMaximum=nTemp;
			}

			// Calculate the range by subtracting the minimum from the maximum. Add
			// 1 times the round to interval to ensure even distribution.
			var nDeltaRange:Number=nMaximum - nMinimum + 1 * nRoundToInterval;

			// Multiply the range by Math.random(). This generates a random number
			// basically in the range, but it won't be offset properly, nor will it
			// necessarily be rounded to the correct number of places yet.
			var nRandomNumber:Number=Math.random() * nDeltaRange;

			// Add the minimum to the random offset to generate a random number in the correct range.
			nRandomNumber+= nMinimum;

			// Return the random value. Use the custom floor( ) method to ensure the
			// result is rounded to the proper number of decimal places.
			return MyNumber.myFloor(nRandomNumber,nRoundToInterval);
		}
		/* 
		 * 将字符串打乱
		 * trace(randomString("我们的爱")) //的我爱们
		 */
		public static function randomString(str:String):String {
			var _local4:Array = new Array ();
			var _local2:uint = 0;
			while (_local2 < str.length) {
				_local4.push(str.charAt(_local2));
				_local2++;
			}
			_local4 = randomArray(_local4);
			str = _local4.join("");
			return str;
		}
		//
		//
		//
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -