Skip to content

joshbruce/php-dice-tower

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dice Tower

A PHP library for "rolling" n dice, with n sides each.

Generates cryptographic random integers for unbiased results.

Installation

composer require joshbruce/php-dice-tower

Usage

Say you are rolling a character for an RPG using a fairly standard method (4d6, drop the lowest).

use JoshBruce\DiceTower\DicePool;

DicePool::roll4d6()->highest(3)->sum();
// step 1: [3, 5, 2, 1]
// step 2: [5, 3, 2]
// step 3: 10

You do not need to use the magic static method:

use JoshBruce\DiceTower\DicePool;

DicePool::roll(4, 6)->highest(3)->sum();
// step 1: [3, 5, 2, 1]
// step 2: [5, 3, 2]
// step 3: 10

You can also roll a single die using one of the following:

use JoshBruce\DiceTower\DicePool;

DicePool::roll();
// rolls 1d6

DicePool::roll(1, 6);
// rolls 1d6

use JoshBruce\DiceTower\Dn;

Dn::withSides();
// roll 1 die with the given number of sides

The values of the rolls are calculated at instantiation. Therefore, the various fluent methods are about manipulating the initial results or retrieving values from them.

Details

Effectively this is a random number generator using cryptographic random integers suitable for use where unbiased results are critical (random_int). The minimum value is always 1.

Inspired by AnyDice and driven by the desire to create an MORPG using various dice-based systems; specifically 7DSystem and the Cypher System.

Other

See the .github directory for various details including code of conduct, contribution notes, and so on.

Contributing

See Contributing documentation for general contribution notes.

  1. Fork this repo
  2. Check out repo using GitHub Desktop or Terminal
  3. Verify Composer is installed: ~ composer --version
  4. ~ cd /path/to/repo
  5. ~ composer install
  6. Wait until complete
  7. ~ ./vendor/bin/phpunit (if you have phpunit available globally that is okay)
  8. All tests should pass

Make desired alterations and submit a PR.

About

PHP library for simulating rolls of dice, any number of sides and any number of dice

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Packages

No packages published

Languages