| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # API
- #### xdice.compile(pattern_string)
- > *Similar to `xdice.Pattern(pattern_string).compile()`*
- > Returns a compiled Pattern object.
- > Pattern object can then be rolled to obtain a PatternScore object.
- #### xdice.roll(pattern_string)
- > *Similar to `xdice.Pattern(pattern_string).roll()`*
- #### xdice.rolldice(faces, amount=1)
- > *Similar to `xdice.Dice(faces, amount).roll()`*
- ## Dice object
- > Set of dice.
- #### Dice.__init__(sides, amount=1)
- > Instantiate a set of dice.
- #### dice.roll()
- > Role the dice and return a Score object
- ####*[classmethod]* Dice.parse(cls, pattern)
- > Parse a pattern of the form 'AdX', where A and X are positive integers.
- > Returns the corresponding Dice object.
- ## Score object
- > Score is a subclass of integer, you can then manipulate it as you would do with an integer.
- > It also provides an access to the detailed score with the property 'detail'.
- 'detail' is the list of the scores obtained by each dice.
- > Score class can also be used as an iterable, to walk trough the individual scores.
- eg:
- >>> s = Score([1,2,3])
- >>> print(s)
- 6
- >>> s + 1
- 7
- >>> list(s)
- [1,2,3]
- #### Score.__new__(iterable)
- >*`iterable` should only contain integers*
- > Score value will be the sum of the list's values.
- ## Pattern object
- > Dice notation pattern.
- #### Pattern.__init__(instr)
- > Instantiate a Pattern object.
- #### pattern.compile()
- > Parse the pattern. Two properties are updated at this time:
- * *pattern.format_string*
- > The ready-to-be-formatted string built from the `instr` argument.
- > *Eg: '1d6+4+1d4' => '{0}+4-{1}'*
-
- * *pattern.dices*
- > The list of parsed dice.
- > *Eg: '1d6+4+1d4' => [(Dice; sides=6;amount=1), (Dice; sides=4;amount=1)]*
- #### pattern.roll()
- > Compile the pattern if it has not been yet, then roll the dice.
- > Return a PatternScore object.
- ## PatternScore object
- > PatternScore is a subclass of **integer**, you can then manipulate it as you would do with an integer.
- > Moreover, you can get the list of the scores with the score(i) or scores() methods, and retrieve a formatted result with the format() method.
- #### pattern_score.scores()
- > Returns the list of Score objects extracted from the pattern and rolled.
- #### pattern_score.score(i)
- > Returns the Score object at index i.
- #### pattern_score.format()
- > Return a formatted string detailing the result of the roll.
- > *Eg: '3d6+4' => '[1,5,6]+4'*
|