w5n / dicen
Parse complex dice rolls from strings.
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 1
pkg:composer/w5n/dicen
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-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