w5n / dicen
Parse complex dice rolls from strings.
0.3
2020-12-08 23:55 UTC
Requires
- php: >=7.3
- w5n/scanero: ^0.2
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2025-04-24 16:52:00 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