roll method

RollResult roll(
  1. int ndice,
  2. int nsides, [
  3. String msg = ''
])

Roll ndice of nsides and return results as list.

Implementation

RollResult roll(int ndice, int nsides, [String msg = '']) {
  RangeError.checkValueInInterval(ndice, minDice, maxDice, 'ndice');
  RangeError.checkValueInInterval(nsides, minSides, maxSides, 'nsides');
  // nextInt is zero-inclusive; add 1 so result will be in range 1-nsides
  final results = [
    for (int i = 0; i < ndice; i++) _random.nextInt(nsides) + 1,
  ];
  _log.finest(() => "roll ${ndice}d$nsides => $results $msg");
  return RollResult(
    expression: "${ndice}d$nsides",
    ndice: ndice,
    nsides: nsides,
    results: results,
  );
}