Methods
(static) gaussian(stdev, meanopt)
- Description:
Generate a whole random number, on a normal (Gaussian, "bell curve") distribution. For example, you might wish to create a youth gang where the members are mostly 18, but with outliers that are much younger or older. This random number generator will give more useful results than
random()
if you do not want the numbers to be evenly distributed.
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
stdev |
Number | The amount of variance from the mean, where about 68% of the numbers will be a number +/- this amount. |
||
mean |
Number |
<optional> |
0
|
The mean around which random numbers will be generated. |
Returns:
a random number
(static) guid() → {String}
- Description:
Generates a unique string (not guaranteed to be globally unique, but certainly unique in any given context).
- Source:
Example
guid()
=> "6v2w2762322fwsds"
Returns:
a context unique string
- Type
- String
(static) nonNegativeGaussian(stdev, meanopt)
- Description:
As the gaussian random number method, but it will not return negative numbers (without disturbing the rest of the distribution).
- Source:
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
stdev |
Number | The amount of variance from the mean, where about 68% of the numbers will be a number +/- this amount. |
||
mean |
Number |
<optional> |
0
|
The mean around which random numbers will be generated. |
Returns:
a random, non-negative number (can include zero)
(static) random(value) → {Object}
- Description:
Return a random value from a "strategy" value, recursively. An element will be selected from an array, a function will be executed for its return value, and a string with variants will be returned with a variant selected. The value is then checked again to see if it can still be randomized further, and this process continues until a primitive value is returned (a number, object, string, or boolean).
- Source:
Example
random("A")
=> "A"
random(['A','B','C']);
=> 'A'
random("{Big|Bad|Black} Dog");
=> 'Bad Dog'
random(() => ["A","B","C"]);
=> "B"
Parameters:
Name | Type | Description |
---|---|---|
value |
String | Array | function | A string with optional variants, or an array from which to select an element, or a function that returns a value. |
Returns:
a single randomized instance, based on the value passed in
- Type
- Object
(static) randomElement(an)
- Description:
A function that takes an array and returns a random element in the array. Does not execute functions, select a string out of string expressions, or perform any other recursive randomization.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
an |
collection | array |
Returns:
one element of the array
(static) roll(number) → {Number}
- Description:
Returns a random number based on a die roll string or a provided number. Math operations are supported.
- Source:
Example
roll(8)
=> 4
Parameters:
Name | Type | Description |
---|---|---|
number |
Number | the maximum value to return |
Returns:
a value from 1 to N
- Type
- Number
(static) roll(notation) → {Number}
- Source:
Example
roll("3d6+2")
=> 9
roll("(2d4*10)+500")
=> 540
Parameters:
Name | Type | Description |
---|---|---|
notation |
String | a notation for a dice roll |
Returns:
a die roll value
- Type
- Number
(static) selectElements(tree) → {Array}
- Description:
It’s common to want to select elements according to probabalities and alternatives. Given the following format, this will return a list of selected strings (which must map to whatever you are working on):
{ "oneOf": { "A & B": 50, // if selected, returns ["A","B"] "C": 50, // these values should add up to 100, if they don't // selecting nothing fills the remaining percentage }, "oneOf:2": { // use anything after "oneOf" to create unique key A: 50, B: 50, }, "allOf": { // all noces that pas d100 check are added (100 = always) A: 20, B: 75, }, // this is 1d2 of the child nodes "someOf:1d2": ["2d3:Cash Register"], // if selected, add 2d3 nodes };
- Source:
Parameters:
Name | Type | Description |
---|---|---|
tree |
Object |
Returns:
a list of selected elements
- Type
- Array
(static) shuffle(array)
- Description:
Randomly shuffle the position of the elements in an array (uses Fisher-Yates shuffle).
random()
is usually more efficient, but if you need to iterate through a set of values in a random order, without traversing the same element more than once,shuffle()
is a better way to randomize your data.
- Source:
Example
var array = ['A','B','C']
atomic.shuffle(array);
=>
array;
=> ['C','A','B']
Parameters:
Name | Type | Description |
---|---|---|
array |
Array | The array to shuffle (in place) |
(static) test(percentage, value1opt, value2opt) → {Boolean|any}
- Description:
Test against a percentage that something will occur.
- Source:
Example
if (test(80)) {
// Happens 80% of the time.
}
test(15, 'A', 'B')
=> 'B'
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
percentage |
Number | The percentage chance that the function returns true |
|
value1 |
any |
<optional> |
the value to return if the test succeeds |
value2 |
any |
<optional> |
the value to return if the test fails |
Returns:
true if test passes, false otherwise
- Type
- Boolean | any