1
2
9
10
13 class com.sekati.math.Range {
14
15
23 public static function isInRange(n:Number, min:Number, max:Number, blacklist:Array):Boolean {
24 if (n == null || typeof(n) != "number") return false;
25 if(blacklist.length > 0) {
26 for(var i:String in blacklist) if(n == blacklist[i]) return false;
27 }
28 return (n >= min && n <= max);
29 }
30
31
39 public static function RandRangeSet(min:Number, max:Number, count:Number, unique:Boolean):Array {
40 var rnds:Array = new Array( );
41 if (unique && count <= max - min + 1) {
42
43
44 var nums:Array = new Array( );
45 for (var i:Number = min; i <= max ; i++) {
46 nums.push( i );
47 }
48 for (var j:Number = 1; j <= count ; j++) {
49
50 var rn:Number = Math.floor( Math.random( ) * nums.length );
51 rnds.push( nums[rn] );
52 nums.splice( rn, 1 );
53 }
54 } else {
55
56 for (var k:Number = 1; k <= count ; k++) {
57 rnds.push( randRangeInt( min, max ) );
58 }
59 }
60 return rnds;
61 }
62
63
69 public static function randRangeFloat(min:Number, max:Number):Number {
70 return Math.random( ) * (max - min) + min;
71 }
72
73
79 public static function randRangeInt(min:Number, max:Number):Number {
80 return Math.floor( Math.random( ) * (max - min + 1) + min );
81 }
82
83
90 public static function resolve(val:Number, min:Number, max:Number):Number {
91 return Math.max( Math.min( val, max ), min );
92 }
93
94 private function Range() {
95 }
96 }