biased-option
v0.0.2
Published
Returns a random option from a list of options Use **bias** to control how these options are generated
Downloads
3
Readme
Biased Option
Returns a random option from a list of options Use bias to control how these options are generated
Basic example:
const BiasedOption = require("biased-option");
const myOptions = ["left", "middle", "right"];
const bias = -1;
BiasedOption.pick(myOptions, bias);
// 'left', 'middle' or 'right'
About bias:
- it's an optional float between -1.0 and 1.0
- for all function defaults to 0
- Manipulates random functions into giving more of one option over the other
Quick note: more pluses(++) means more times drawn over time
If the bias tends to negative, the function will draw more of the options towards the start of the list: (left+++ , middle++, right+)
If the bias tends to positive, the function will draw more of the options towards the end of the list (left+, middle++, right+++)
The closer to 0 the bias gets, the more unbiased the options will be picked, but still random
BiasedOption (Class)
Constructor, instance members and methods
// create an instance
const biased = new BiasedOption(options, bias);
// use next to return a random option
const randOption = biased.next();
//change the bias and options
biased.bias = -1;
biased.options = ["d", "e"];
// create an object
biased.toObject(); // {options:['d','e'],bias:-1}
Static methods:
var isItRaining = BiasedOption.bool(bias);
// true or false
var polarity = BiasedOption.sign(bias);
// -1 or 1
var polarity = BiasedOption.sign(bias);
// -1 or 1
var heLikes = BiasedOption.duo("cats", "dogs", bias);
// cats or dogs
var direction = BiasedOption.trio("left", "middle", "right", bias);
// left, middle, or right
var any = BiasedOption.pick([false, 1, Math.pow], bias);
// false , 1 or function pow
//create a new instance from an object
var rand = BiasedOption.from({ options: [1, 2], bias: 1 });
rand.next();
//1 or 2