--------------------------------------------------------------------------
NEW! in version 3.7
--------------------------------------------------------------------------

Version 3.7 fixes a small bug that seemingly appeared at random, and in 
only a small number of cases. This bug did not appear to occur in normal
die rolls, but only in a small number of calculations that attempted to
add a single pair of numbers, in which one of the numbers was negative.

DICE! now has a spiffy new evaluation routine that seems to be working
very well without any bugs.

--------------------------------------------------------------------------
DICE!
--------------------------------------------------------------------------

DICE! is a die rolling program for Windows 3.1 that is probably unlike
any other die rolling program that you have ever tried. There are no
artificial restraints on the number and type of dice you can roll, no
unnecessary pointing and clicking all over the screen just to roll 3d6 
one time and 3d4+3 the next.

If you want to roll 3d6 + 3d4 + 2d8, you can. How about 2d20 - 1d30? You 
can roll that too. 99d3? 11d9 + 14d13+5? Yes, these too. Unlike most die
rolling programs, you are not limited to the types, numbers, and 
combinations of dice and bonuses/penalties that *I* decided you will
probably be needing. You can roll the types, numbers, and combinations of
dice, along with the bonuses/penalties for each, that you *actually* need.

Better yet, you can also define custom types of dice, so that you can make
up dice to roll any range or arbitrary sequence of numbers. DICE! does not
consider custom dice to be anything as ridiculously mundane as a simple
range of one to the number of sides the die has, since this is handled
automatically as a normal die. So, a die written like d9 would be
considered a normal die with 9 sides, and a die written like d33 would be
considered a normal die with 33 sides. Custom dice are reserved for dice
that should return results from ranges outside of 1 to something, or that
should return results that use a set of numbers that isn't a consecutive
sequence. See below for more info on custom dice.

Read on for more details.

--------------------------------------------------------------------------
How It Works
--------------------------------------------------------------------------

The way it works is very straight forward: you just type in the roll you
want to make, just the way it appears in most game books. Those example
rolls from a couple paragraphs up show you exactly what you'd type into
the program to get just those rolls. No need to click around for a few
minutes just to change your roll parameters; just type it in.

Also, unlike some of the other die rollers that I tested before creating
this one, DICE! actually generates a number for every single die rolled;
it does not just roll a random number in the possible range of results.
This means that any bell curve results are retained when using DICE!, just
as if you had actually rolled real dice.

By checking the See All check box, you can see a text box which contains
the sequence of rolls that gives the final result. NOTE: This additional
information is only available for rolls that were made while See All was
turned on.

Each part of the sequence is shown totaled on a separate line of the text
box, so you can see the total for each individual part of the roll. This
means that a roll of 3d6-1d6 would appear in the text box something like
this:

    3d6= +3+2+4= 9
    1d6= +3= 3
    Calc: 9-3= 6

The total result of each die roll is shown on at the end of the line, and
the total of the whole sequence is shown at the end of the Calc: line at
the bottom of the text box.

The Calc: line at the end of the text box shows how the results of the
rolls are put together, along with any other calculations, to get the
final result.

You may also do simple calculations from the Die Value combo box,
including calculations that involve one or more die rolls.

To perform a calculation, just type it into the Die Value combo box, and
hit the Roll button, just like you would roll some dice. This will find
the result of your calculation. You can combine calculations with die
rolls, so you can now have a die sequence like this one:

    (2d6-2)*2+2*d6

DICE! will roll all dice first, before anything else, putting the results
back into the calculation, and will then perform any other calculations
following the standard order of operations, which is:

    parenthesis: ()
    multiplication and division: */\
    addition and subtraction: +-

If you use parenthesis, they will be evaluated from the innermost set to
the outermost set. When more than one set of operators of the same level
of importance are involved, they are evaluated left to right.

In previous versions of DICE!, you could not roll a random number of dice
because it did not understand two die types put together. Now, if you
want to roll a random number of dice, you can, by using a die value
similar to this:

    1d6d6

This will give you 1d6 rolls of a d6. The See All results from this roll
might look something like this:

    1d6= +3= 3
    3d6= +1+6+4= 11
    Calc: 11= 11

From this you can see that the program first rolled 1d6, came up with a
result of 3, and then used the 3 to roll 3d6. This will not work if
either of the die types is enclosed in parenthesis.

You can now also roll each digit of a multi-digit number if you wish to
do so. However, because DICE! will roll a random number of the die type
if you just put the die types side by side, you need to put every other
die type (at least) in parenthesis; this will cause DICE! to see each
result as a separate digit. For example, if you wish to generate a three
digit number that has a range of 1-4 for the first digit, 1-6 for the
second digit, and 1-10 for the last digit, you would enter:

    d4(d6)d10

This would give you a See All result that might look like this:

    d4= +2= 2
    d6= +5= 5
    d10= +7= 7
    Calc: 2(5)7= 257

Using this same method, you could put any digit you wish at the front of
a result just by putting it at the front of the Die Value text, with the
rest of the Die Value text in parenthesis, which might look like this:

    2(2d6)

with a possible See All result of:

    2d6= +4+5= 9
    Calc: 2(9)= 29

NOTE: As you may notice, you must use a multiplication sign (*) to get
DICE! to multiply. Unlike standard math, DICE! does not see a number
before a set of parenthesis as meaning multiply that number by the number
inside the parenthesis.

If there is some reason DICE! can not complete a calculation, such as an
unbalanced set of parenthesis (you must have the same number of left and
right parenthesis), then DICE! will give a result of <calc error>.

Custom Dice
-----------

You can define custom dice, with each die type being defined as an
arbitrary range or list of numbers. For example, you could define a die
called 'd00' as being a range from 0 to 99, a die called 'dSwing' as being
a range from -49 to 49, or a die called 'dBit' as a list of possible
numbers like '0,1,2,4,8,16,32,64,128'. While the range can be simulated in
many cases by using the calculation ability of DICE!, it is often more
convenient to define a new die type than constantly typing in the
calculation to get the range or list of numbers that you want.

You create a defined die by using the Define Die Types dialog, accessible
from within the Preferences dialog, as discussed below.

--------------------------------------------------------------------------
Preferences Dialog
--------------------------------------------------------------------------

The Preferences dialog is broken down into two main frames, with a couple
of items that don't fall into either frame. When you click on the Okay
button, all changes will be saved and you will be returned to DICE! If
you change your mind, you can click on the Cancel button to return to
DICE! with no changes of any kind saved or used by the program.

The first frame is where you add, edit, and remove custom die definitions.

To add a new die definition, click on the Add button and the Define Die
Types dialog will come up with a blank name and sample entries for Range
and Number List definitions. Enter a Die Name, then click on Range to
define a range of numbers, or click on Number List to define a list of
possible results. Enter the Low end and High end of the range for a range,
or enter a list of numbers separated by commas for a number list. Then
click on the Okay button to accept the new die definition. If you change
your mind, click on the Cancel button to return without changing anything.
Only the values in the section that is active will be used for the
definition of the new die, so don't worry if there is something in the
Range section if you are entering a Number List definition; it will be
ignored.

To edit a current die definition, click on the definition to edit, then
click on the Edit button. The Define Die Types dialog will come up, with
the information for the die definition you selected filled in the
appropriate areas. Change what you need to, then click on Okay to save
the changes and return to the Preferences dialog. If you change your
mind, click on the Cancel button to return without changing anything.

To remove a current die definition, click on the definition to remove,
then click on the Remove button.

Please note that the die definitions are displayed in a list box, so they
can not be edited without using one of the editing buttons.

The second frame is where you control how DICE! handles adding items to
the Die Value drop down list. If you check the Auto add Die Value entries
check box, entries that you enter in the Die Value box will be added to
the drop down list.

If you check the List new entries first check box, newly added entries in
the drop down list will be added to the top of the list of items,
otherwise they will be added to the bottom of the list.

The scrollbar allows you to change how many items DICE! should keep in the
drop down list. Setting this value to 0 will make DICE! not bother to add
new items to the list, but it will not affect any items that may have
been added from the Always Add on startup box.

The Always Add on startup text box allows you to enter values that you 
always want to add into the drop down list when the program starts. The
first item in this box is the one that will automatically be rolled when
the program starts. Since this is a text box, you can edit the text in the
box as you see fit, and cut and paste bits of text within the box.

If you check the Keep Always Add items in list check box, then DICE! will
try to keep all of the Always Add items in the drop down list box all the
time. The order in the drop down list will be the same as the order they
are entered in the Always Add on startup box. If the List new entries
first check box is also checked, the Always Add items will stay in the
bottom positions of the drop down list, otherwise they will stay in the
top positions of the list.

In the lower left corner of the Preferences dialog is the Stay on Top
check box that used to live on the main window. Checking this box will
have DICE! stay on top of any other windows you may have open, except
other DICE! windows (so you can see what you are changing, of course).
Also, this option used to turn itself off when you minimized DICE!, but
that has now been corrected, and it will send itself to the top once again
when you restore it from its minimized state.

Below the Stay on Top check box is the Current default die type box. Enter
a valid die type here to change the default die type (what DICE! uses if
you only enter a 'd' with no type). Any valid die type can be used. Be
aware that entering an invalid type may not crash the program, but will
probably cause some unusual and potentially irritating problems.

Previous Versions
-----------------

If you have a DICE!.DAT data file from previous versions of DICE!, you
will be able to delete it now and use the Preferences dialog to maintain
everything from within the program instead.

Before deleting the DICE!.DAT file, though, run DICE! once first, so that
it can read the entries from your data file and integrate them into the
new structure (a combination of the .INI file and a .DEF file). Once the
entries from your DICE!.DAT data file have been integrated, you can safely
delete the file. Nothing bad will happen if you don't delete it, but it
may slow down how fast DICE! loads.

--------------------------------------------------------------------------
About...
--------------------------------------------------------------------------

You can get to the About dialog (for version and other information) inside
DICE! by clicking on the icon or copyright information at the bottom of
the main window.

--------------------------------------------------------------------------
VBRUN300.DLL
--------------------------------------------------------------------------

This program requires VBRUN300.DLL, which is not included in the .ZIP file
that you downloaded. VBRUN300.DLL is required by a large number of free
and shareware Windows programs, so chances are good that you already have
a copy. If you don't, it is freely available from many BBSes and all the
major online services.

--------------------------------------------------------------------------
That's All!
--------------------------------------------------------------------------

That's everything there is, so thank you for looking at DICE!.

If you have comments, problems, or suggestions, please feel free to drop
me a line at one of the e-mail addresses listed below.

Armin D. Sykes

E-Mail
======
72700.1724@compuserve.com
Armin.Sykes@genie.com
ArminSykes@aol.com
