Re: D&D Dice
- To: mathgroup at smc.vnet.net
- Subject: [mg37482] Re: [mg37457] D&D Dice
- From: Kyriakos Chourdakis <tuxedomoon at yahoo.com>
- Date: Fri, 1 Nov 2002 01:43:00 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
One can define the function "d0" for dice, that
creates the table of xd0y rolls, in a different form
than yours:
In:
d0[x_Integer, y_Integer] :=
Module[{A},
A = Table[i, {i, y}];
Nest[Flatten[Outer[Plus, #1, A]] &, A, x - 1]
]
This can be called infix, therefore one would get
In:
3~d0~4
Out:
{3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 4, 5,
6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10, 5, 6, 7, 8,
6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11, 6, 7, 8, 9, 7,
8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12}
Afterwards we can define the function "d" that counts
the results in the following way:
In:
d[x_Integer, y_Integer] := Module[{A, AMx, AMn},
A = x~d0~y;
AMx = Max[A];
AMn = Min[A];
Table[{i, Count[A, z_ /; z == i]}, {i, AMn, AMx}]
]
For example,
In:
3~d~4
Out:
{{3, 1}, {4, 3}, {5, 6}, {6, 10}, {7, 15}, {8, 21},
{9, 25}, {10, 27}, {11, 27}, {12, 25}, {13, 21}, {14,
15}, {15, 10}, {16, 6}, {17, 3}, {18, 1}}
The results is {roll,number of occurences}
I suppose you would be interested in getting a bar
chart with the result. We can use the BarChart
function of the Graphics package to define the new
function "dB" for bar chart:
In:
<< Graphics`Graphics`
dB[x_Integer, y_Integer] := Module[{B},
B = x~d~y // Transpose;
BarChart[B[[2]], Ticks -> {Transpose[{Table[i, {i,
Length[B[[1]]]}], B[[1]]}], Automatic}];
]
Then, if you input
In: 3~dB~4
you would get a bar chart with the results of a 3d4
roll.
Hope it helps,
Kyriakos
_____+*"*+____+*"*+___+*"*+__+*"*+_
Kyriakos Chourdakis
Lecturer in Financial Economics
URL: http://www.qmw.ac.uk/~te9001
tel: (++44) (+20) 7882 5086
Dept of Economics
University of London, QM
London E1 4NS
U.K.
====================================================
Consider yer basic 3d6 stat roll: What are the
possibilities?
This gives a table of all 6^3 = 216 rolls:
Table[i + i2 + i3, {i, 6}, {i2, 6}, {i3, 6}] //
MatrixForm
My question is this: How shall I set up a formula to
list the count of each
total?
====================================================
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com