toosoon-prng-controllers
v3.0.0
Published
This project provides PRNG functions with a set of Controllers for generating pseudo-random values using a seed-based approach and various algorithms
Downloads
12
Maintainers
Readme
TOOSOON Pseudo-Random Number Generator (PRNG) — Controllers
This project provides a PRNG
functions with a set of Controllers
for generating and manipulating pseudo-random values using a seed-based approach and various algorithms.
It adds additionnal features to the main library: toosoon-prng.
Installation
Yarn:
$ yarn add toosoon-prng-controllers
NPM:
$ npm install toosoon-prng-controllers
Usage
import { IntController, IntGroupController } from 'toosoon-prng-controllers';
const config = {
count: new IntController('count', 0, 10),
counts: new IntGroupController('counts', 5, 10)
};
console.log(config.count.getValue()); // Pseudo-random integer in the interval [0, 10]
for (let i = 0; i < 5; i++) {
console.log(config.counts.getValueAt(i)); // Pseudo-random integers in the interval [5, 10]
}
Controllers
BooleanController
Generate pseudo-random boolean value.
class BooleanController(seed: string, probability?: number);
SignController
Generate pseudo-random sign value (-1 or 1).
class SignController(seed: string, probability?: number);
FloatController
Generate pseudo-random floating-point number within a specified range.
class FloatController(seed: string, min?: number, max?: number);
IntController
class IntController(seed: string, min: number, max: number);
HexColorController
Generates pseudo-random hexadecimal color.
class HexColorController(seed: string);
ItemController
Pick a pseudo-random item from a given array.
class ItemController<T>(seed: string, items: T[]);
ObjectPropertyController
Pick a pseudo-random property value from a given object.
class ObjectPropertyController<T>(seed: string, object: Record<string, T>);
WeightsController
Select a pseudo-random index from an array of weighted items.
class WeightsController<T>(seed: string, items: Array<{ weight: number; value: T }>);
Group Controllers
Group Controllers manage multiple instances of individual controllers.
BooleanGroupController
Manage multiple BooleanController
.
class BooleanGroupController(seed: string, probability: number);
SignGroupController
Manage multiple SignController
.
class SignGroupController(seed: string, probability: number);
FloatGroupController
Manage multiple FloatController
.
class FloatGroupController(seed: string, min: number, max: number);
IntGroupController
Manage multiple IntController
.
class IntGroupController(seed: string, min: number, max: number);
HexColorGroupController
Manage multiple HexColorController
.
class HexColorGroupController(seed: string);
ItemGroupController
Manage multiple ItemController
.
class ItemGroupController<T>(seed: string, items: T[]);
ObjectPropertyGroupController
Manage multiple ObjectPropertyController
.
class ObjectPropertyGroupController<T>(seed: string, object: object);
WeightsGroupController
Manage multiple WeightsController
.
class WeightsGroupController<T>(seed: string, items: Array<{ weight: number; value: T }>);
License
MIT License, see LICENSE for details.