https://github.com/lurst/dragn
:game_die: Using dice in a Pythonic way
https://github.com/lurst/dragn
dice hacktoberfest python random
Last synced: 5 months ago
JSON representation
:game_die: Using dice in a Pythonic way
- Host: GitHub
- URL: https://github.com/lurst/dragn
- Owner: LuRsT
- License: mit
- Created: 2013-03-10T20:07:00.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2025-03-08T16:04:07.000Z (10 months ago)
- Last Synced: 2025-03-18T03:22:27.474Z (10 months ago)
- Topics: dice, hacktoberfest, python, random
- Language: Python
- Homepage:
- Size: 318 KB
- Stars: 17
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
___
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
```shell
$ pip install dragn
```
### How to use
```python
>> 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](https://github.com/LuRsT/dragn/blob/master/dragn/tests/test_dice.py)