UNPKG

@tdurtschi/bug

Version:

Bug is a simulation that models a weevil walking around in an HTML canvas.

55 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalRange = exports.randFromNormalDist = exports.multi = exports.rangeDecimal = exports.range = exports.randBool = exports.randFromWeighted = exports.randChance = exports.randInt = void 0; exports.randInt = function (min, max) { return Math.floor(Math.random() * (max - min) + min + 0.49); }; exports.randChance = function (numerator, denominator) { return Math.random() < numerator / denominator; }; exports.randFromWeighted = function (list) { var total = list.reduce(function (a, b) { return a + b; }, 0); var result = Math.floor(Math.random() * total) + 1; for (var i = 0; i < list.length; i++) { if (list[i] >= result) { return i; } else { result -= list[i]; } } return list.length - 1; }; exports.randBool = function () { return exports.randInt(0, 1) === 1; }; exports.range = function (mean, variance) { return Math.floor(Math.random() * variance) + mean - (variance / 2); }; exports.rangeDecimal = function (mean, variance, places) { var multiplier = Math.pow(10, places); return exports.range(mean * multiplier, variance * multiplier) / multiplier; }; exports.multi = function (times, functionArg) { return function () { for (var i = 0; i < times - 1; i++) { functionArg(i); } return functionArg(times - 1); }; }; exports.randFromNormalDist = function () { var u = 0, v = 0; while (u === 0) u = Math.random(); while (v === 0) v = Math.random(); var num = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v); num = num / 10.0 + 0.5; if (num > 1 || num < 0) return exports.randFromNormalDist(); return num; }; exports.normalRange = function (min, max) { var range = max - min; var num = (range * exports.randFromNormalDist()) + min; window.DEBUG && console.log(num); return Math.floor(num); }; //# sourceMappingURL=stats.js.map