Skip to content
/ dragn Public

🎲 Using dice in a Pythonic way

License

Notifications You must be signed in to change notification settings

LuRsT/dragn

Repository files navigation

Dragn Logo

Supported Python versions PyPI version Build Status Codecoverage Licence Code style: Black Downloads


Roll dice in your python programs


Why?

I wanted a better API to rolling dice using Python, and the usual random.randint is very good, but doesn't really represent rolling dice quite the way I imagine it.

This was a good learning experiment, but I'm not expecting anyone to use it.

Who is this for?

People building RPGs, or games that would involve dice and who care about how their code looks like.

I may be biased, but I really believe that this library provides a much better interface than pure random.randint.

How to install

$ pip install dragn

How to use

>> from dragn.dice import D4, D6, D8, D10
>>> D6()
1
>>> f"You roll the die and the result is {D8()}"
'You roll the die and the result is 4'
>>> f"You roll 3 dice and you get {[D8() for _ in range(3)]}"
>>> 'You roll 3 dice and you get [3, 1, 8]'
>>> four_dice = D4 * 4
>>> f"You roll 4 dice and the results are {four_dice()}"
'You roll 4 dice and the results are (4, 3, 1, 2)'
>>> f"You roll two dice and the results are {two_dice()}"
'You roll two dice and the results are (3, 4)'
>>> dice_tower = (D6 * 2) + D4
>>> f"You roll two D6 and a D4 and check the results {dice_tower()}"
'You roll two D6 and a D4 and check the results (2, 2, 6)'
>>> five_dice = D10 * 5
>>> result = five_dice()
>>> result
(7, 10, 2, 8, 1)
>>> f"The lowest value dice in the pool was: {min(result)}"
'The lowest value dice in the pool  was: 1'
>>> f"The highest value dice in the pool  was: {min(result)}"
'The highest value dice in the pool  was: 10'

For more examples, check the tests

Releases

No releases published

Packages

No packages published

Languages