step-sequence-generator
Version:
A step sequence generator for figure skating programs
25 lines (24 loc) • 1.06 kB
TypeScript
import { WeightMapType } from '../../../shared/types/roulette/chance-ratio-map.type';
export type WeightKeyCreatorType<S, M> = (arg: S) => M;
export type GenerateNumberArgsType<S, M> = {
selection: S[];
weightMap: WeightMapType<M>;
weightKeyCreator: WeightKeyCreatorType<S, M>;
};
export declare class NumberGenerator {
private _fallbackWeight;
get fallbackWeight(): number;
set fallbackWeight(value: number);
/**
* generateNumber
* @arg args
* @arg args.selection элементы
* @arg args.weightMap список весов элементов
* @arg args.weightKeyCreator callback для опредления ключа в weightMap
*/
generateNumber<S, M>(args: GenerateNumberArgsType<S, M>): number;
protected createWeightList<S, M>(args: GenerateNumberArgsType<S, M>): number[];
protected getVirtualChanceListLength(chanceList: number[]): number;
protected getRandomIndex(max: number): number;
protected getItemIndex(chanceList: number[], randomIndex: number): number;
}