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  }