After a good long time of the above applet not working, it should but up and rolling. The small text entry fields at the top provide a place to enter the number of die, the numbers of sides on each die, and the number you are attempting to hit. The All button will generate statistics for the complete range of numbers that can be rolled, from number to number times sides. The single button will generate statistics only for the target number specified. Each time the Single button is hit, the target field increments by one.
The Verbose check box simplifies the output to the ways to hit field only. I hope one can cut/paste from the big text field into a spread sheet if Verbose is disabled.
The percent numbers with Verbose check provide the exact chance of rolling the target number, and the chance of rolling that number or lower.
There are range checks on all the numbers entered. No more than 15 dice are allowed, or 15 sides per dice. I experimented with 20 20 sided die briefly, and saw overflow errors in 64 bit math. Yes, folk, we are talking big numbers here. Hopefully, 15 and 15 will prove sufficient for your needs. If you enter an out of range number, an error message will be put in the display field, and a valid in range number will be substituted.
If you are rolling a half dozen dice with a half dozen sides, you should not have problems with overflow or delay. If you start rolling 10 or more dice, you may have to be patient, and you could easily overflow the integer math used.
The above code is not as shown in the listing. I found the code loads cleaner with a single class, rather than two. Thus, I'm using the recursive version of the code. This saves memory, but slows things down considerably if you are rolling a large number of dice. If things start running slow, click off the verbose option.
This is an early experiment with Java. As of April 24, 2003, I have seen it work on my Mac using AOL for OS X, Explorer for OS X, and the Safari beta. I'll be trying it on various other browsers and platforms. Please drop me a line if the applet isn't working on your platform.
Bob Butler