w5n/dicen

Parse complex dice rolls from strings.

Maintainers

Details

github.com/waldson/dicen

Source

Issues

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 1

pkg:composer/w5n/dicen

0.3 2020-12-08 23:55 UTC

This package is not auto-updated.

Last update: 2025-09-25 18:59:21 UTC


README

Parser for dice rolls.

Instalation

composer install w5n/dicen

Usage

use W5n\Dicen\DefaultRandomGenerator;
use W5n\Dicen\DiceEngine;
use W5n\Dicen\DiceParser;

$parser          = new DiceParser();
$randomGenerator = new DefaultRandomGenerator();
$engine          = new DiceEngine($parser, $randomGenerator);

// Dice mode
$engine->roll('5d4+3');

// Math mode
$engine->roll('120+10*33-45');

// Mixed mode
$engine->roll('2d6-4+45-2d10+8');


// Invalid roll throws exception
try {
    $engine->roll('invalid');
} catch (\Exception $ex) {
    //...
}

// Syntax tree
$ast = $parser->parse('2d6+25-1d4-1');

TO-DO

  • Use a custom exception
  • Exploding Dices
  • Keep or Drop some highest/lowest dices
  • Show roll details

References