"SlimeV2" contains the main method for this program.

This version of the Slime Volleyball example uses essentially the same code
as the original, but it has been split into a series of different class
definitions.

The three main abstractions introduced are (i) a Player, (ii) a Side and
(iii) a Ball.  Note the effects that this has on the main part of the program
here -- combinations like multi-ball games or multi-player teams are
readily added.  Previously the fact that there were two players was 
heavily inter-twined with the code in the main part of the program -- for
example separate fields were used for each player, rather than having
separate objects which encapsulate the players' state.

One further change to notice is the introduction of a "Constants" interface.
This is something of an abuse of interfaces, but is a common idiom seen in
Java applications.  The interface does not define any methods but provides
a common point to gather "public static final" constant values that are
used throughout the code.  Using an interface (rather than a super-class)
means that classes using the "Constants" interface are still free to extend
other classes.


