toosoon-prng-controllers
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

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.

Package Sidebar

Install

npm i toosoon-prng-controllers

Weekly Downloads

0

Version

3.0.0

License

MIT

Unpacked Size

43.5 kB

Total Files

12

Last publish

Collaborators

  • arnaudrocca