0.0.2 • Published 3 years ago

biased-option v0.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

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