Bug 81612 - New Port: games/p5-Games-Dice
Summary: New Port: games/p5-Games-Dice
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Jean-Yves Lefort
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-29 03:30 UTC by Aaron Dalton
Modified: 2005-06-02 13:27 UTC (History)
0 users

See Also:


Attachments
submission.txt (2.92 KB, text/plain)
2005-05-29 03:30 UTC, Aaron Dalton
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Aaron Dalton 2005-05-29 03:30:01 UTC
Games::Dice simulates die rolls. It uses a function-oriented (not 
object-oriented) interface. No functions are exported by default. At 
present, there are two functions which are exportable: roll and 
roll_array. The latter is used internally by roll, but can also be 
exported by itself.

The number and type of dice to roll is given in a style which should be 
familiar to players of popular role-playing games: adb[+-*/b]c. a is 
optional and defaults to 1; it gives the number of dice to roll. b 
indicates the number of sides to each die; the most common, cube-shaped 
die is thus a d6. % can be used instead of 100 for b; hence, rolling 2d% 
and 2d100 is equivalent. roll simulates a rolls of b-sided dice and adds 
together the results. The optional end, consisting of one of +-*/b and a 
number c, can modify the sum of the individual dice. +-*/ are similar in 
that they take the sum of the rolls and add or subtract c, or multiply or 
divide the sum by c. (x can also be used instead of *.) Hence, 1d6+2 gives 
a number in the range 3..8, and 2d4*10 gives a number in the range 20..80. 
(Using / truncates the result to an int after dividing.) Using b in this 
slot is a little different: it's short for "best" and indicates "roll a 
number of dice, but add together only the best few". For example, 5d6b3 
rolls five six- sided dice and adds together the three best rolls. This is 
sometimes used, for example, in roll-playing to give higher averages.

Generally, roll probably provides the nicer interface, since it does the 
adding up itself. However, in some situations one may wish to process the 
individual rolls (for example, I am told that in the game Feng Shui, the 
number of dice to be rolled cannot be determined in advance but depends on 
whether any 6's were rolled); in such a case, one can use roll_array to 
return an array of values, which can then be examined or processed in an 
application-dependent manner.

This having been said, comments and additions (especially if accompanied 
by code!) to Games::Dice are welcome. So, using the above example, if 
anyone wishes to contribute a function along the lines of roll_feng_shui 
to become part of Games::Dice (or to support any other style of die 
rolling), you can contribute it to the author's address, listed below.
Comment 1 Jean-Yves Lefort freebsd_committer freebsd_triage 2005-05-30 23:46:55 UTC
Responsible Changed
From-To: freebsd-ports-bugs->jylefort

Take.
Comment 2 Jean-Yves Lefort freebsd_committer freebsd_triage 2005-06-02 13:27:44 UTC
State Changed
From-To: open->closed

Committed, thanks!