# The game-probability package

A library designed to aid in easily calculating the
probability of various outcomes of dice rolls. The
central types are held in the
`Numeric.Probability.Game.Event` module, the dice are
defined in the `Numeric.Probability.Game.Dice` module,
and the functions for calculating probabilities are in
the `Numeric.Probability.Game.Query` module. Various
examples are scattered throughout the library, but here
are some more:

Evalulates the chance of a coin toss turning up heads:

chanceTrue coinToss

Shows the chances of each outcome of rolling two six-sided dice, as a textual bar chart:

show (2*d6)

The chance of getting an 18 when rolling 3 six-sided dice and rerolling on any total less than 8:

chancePred (== 18) ((3*d6) `rerollOn` [3..7])

As a more complex example, this implements my memory/understanding of the original World of Darkness dice system (http://en.wikipedia.org/wiki/Storytelling_System). You roll a given number of 10-sided dice, rolling one extra for every 10 you score if you are specialised. The number of 1s on the original roll are subtracted from the total number of dice that equal or exceed the difficulty target:

successes :: Int -> Int -> Bool -> EventM Int successes target dice specialised = do initial <- replicateM dice d10 extra <- if specialised then replicateM (count (== 10) initial) d10 else return [] return (count (>= target) (initial ++ extra) - count (== 1) initial) where count f xs = length (filter f xs)

If only all RPGs specified their rules in Haskell!

See also the blog post on the design of the library: http://chplib.wordpress.com/2010/08/13/nice-dice-in-haskell/

- No changelog available

## Properties

Versions | 1.0, 1.1 |
---|---|

Dependencies | base (==4.*), probability (==0.2.*), random (==1.0.*) |

License | BSD3 |

Author | Neil Brown |

Maintainer | neil@twistedsquare.com |

Category | Math |

Upload date | Fri Aug 13 09:15:10 UTC 2010 |

Uploaded by | NeilBrown |

Downloads | 123 total (15 in last 30 days) |

## Modules

## Downloads

- game-probability-1.0.tar.gz [browse] (Cabal source package)
- Package description (included in the package)

#### Maintainers' corner

For package maintainers and hackage trustees