Added randIntExclude
This commit is contained in:
parent
0ef7225f13
commit
3f18db888a
@ -3,12 +3,12 @@ using StringTools;
|
||||
|
||||
class IzzComLib {
|
||||
/**
|
||||
* Return a random integer between x and y, both inclusive.
|
||||
* Returns a random integer between x and y, both inclusive.
|
||||
* Correctly handles whether parameters are given low-to-high or high-to-low.
|
||||
* If parameters are equal, returns x.
|
||||
*
|
||||
* @param X The lower value.
|
||||
* @param Y The upper value.
|
||||
* @param x The lower value.
|
||||
* @param y The upper value.
|
||||
*/
|
||||
public static function randInt(x, y) {
|
||||
if (x < y) {
|
||||
@ -20,6 +20,31 @@ class IzzComLib {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random integer between x and y, both inclusive.
|
||||
* Will not return a result that matches a value in the `exclude` array.
|
||||
*
|
||||
* ⚠️ Does not protect against excluding all possible results! The function will loop endlessly! ⚠️
|
||||
*
|
||||
* @param x The lower value.
|
||||
* @param y The upper value.
|
||||
* @param exclude Array of values that shouldn't be chosen.
|
||||
*/
|
||||
public static function randIntExclude(x, y, exclude:Array<Int>) {
|
||||
if (x == y) {
|
||||
return x; // Very minimal mistake protection
|
||||
} else {
|
||||
var result:Int = 0;
|
||||
|
||||
while (true) {
|
||||
result = randInt(x, y);
|
||||
if (!exclude.contains(result)) {break;}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current time in 24hr notation, with left-padding (HH:MM).
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user