Генератор случайных чисел
Объект ГСЧ доступен как salet.rnd
.
В отличие от Math.random
, версия генератора Salet обладает предсказуемостью: генератор выдаёт одинаковые числа, когда инициализован тем же значением-зерном. Поэтому после сохранения и загрузки игры результат не изменится.
Генератор выдаёт псевдослучайные числа с периодом 2³². Этого достаточно для большинства игр.
Свойства multiplier
, modulo
, offset
- это системные значения ГСЧ. Если вы не знаете, что это, то не надо их трогать.
Свойства CoffeeScript
modulo
Значение 2³² - 1.
Методы CoffeeScript
randn
Возвращает псевдослучайное целое число от 0
(включительно) до modulo
randf
Возвращает псевдослучайное дробное число (float) от 0
(включительно) до 1
.
rand
Возвращает псевдослучайное целое число от 0
(включительно) до аргумента n
.
Аргумент: любое число
randomInt
Другое название метода rand
randomElement
Возвращает псевдослучайный элемент из массива.
Аргумент: elements
- массив для выборки
randRange
Возвращает псевдослучайное число от [аргумента 1] (включительно) до [аргумента 2]. Число будет целым, если аргумент 1 также целое число.
Аргумент 1: min
- любое число
Аргумент 2: max
- любое число
dice
Возвращает результат броска n
кубиков, каждый из которых имеет dx
граней. К результату прибавляется значение plus
Аргумент 1: n
- целое число
Аргумент 2: dx
- целое число
Аргумент 3: plus
- число, необязательный аргумент
diceString
Возвращает результат броска n
кубиков, каждый из которых имеет dx
граней. К результату прибавляется значение plus
.
Но только этот метод принимает не три аргумента, а строку вида NdX+plus
, которую уже разбирает в числа. По умолчанию plus = 0
, n = 1
Кроме обычного числа граней, метод также понимает кубики dF
- так называемые fudge dice, и d%
- процентный кубик d100.
Аргумент 1: строка вида NdX+plus
odds
Возвращает шанс (в процентах) того, что исходное значение +
значение, которое выпадет на кубике с n
гранями, будет строго больше целевого значения target
.
Аргумент 1: value
- исходное значение
Аргумент 2: target
- целевое значение
Аргумент 3: n
- количество граней кубика
seed
Исходное зерно, которое инициализирует генератор. По умолчанию Salet использует текущее время с точностью до миллисекунд.
Аргумент: целочисленное значение, значительно меньше modulo
getSeed
Метод, который возвращает значение seed