private static String[] _contents = new String[]{"Desiderata:", " Once upon a time we got a 6-Tubes Puzzle for", " an exercise in Artificial Intelligence. Then", " I implemented a graphical simulator of the", " puzzle (originally with Open GL), which helped", " me a lot in figuring out an appropriate", " heuristic for solution from an arbitrary", " initial state. Subsequently, I rewrote the", " puzzle as an applet with Java. It's now open", " to the general public, so you can play it in", " your spare time. Enjoy!", "", "Topology:", " The original 3D game consists of two sets of", " tubes, the upper and the lower, each having 6", " tubes arranged in a circle according to their", " sizes. The two sets are combined together in", " such way that one set can be rotated", " relatively to the other. The proposed", " implementation simplifies the topology by", " stretching the circle into the line and", " allowing circular shift of the upper set of", " tubes.", "", "Goal:", " The tubes contain 21 colored beads. There is", " one red bead, two yellow beads, ..., and", " finally, 6 magenta beads. The number of beads", " of each color corresponds the capacity of the", " tube of same color. The goal of the game is to", " put all the beads into corresponding tubes.", " As you play, monitor the status line of your", " browser/appletviewer; it'll inform you", " whenever the current puzzle state is the goal", " state.", "", "Controls:", " In order to reach the goal state from an", " arbitrary initial bead distribution the", " following three operations are allowed:", "", " o FLIP: The two sets are flipped so that the", " lower set becomes the upper one and", " vice versa. As a result of this", " operation the beads fall from the", " tubes of the new upper set into the", " corresponding tubes of the new lower", " set;", "", " o RIGHT: The upper set is circularly rotated", " once to the right. As a result, beads", " from the upper set of tubes might", " fall into the tubes of lower set;", "", " o LEFT: Same as RIGHT but in the other", " direction;", "", " Buttons with these names are located at the", " bottom of the applet. Moreover, the buttons", " divide the applet into three equally sized", " areas, so clicking in an appropriate area", " performs the same action as the button", " below. The buttons located over the applet are", " self-explanatory. The HELP frame you are", " currently reading, contains the LEVEL widget", " which allows to change the skill level of the", " puzzle (the number of tubes).", null};
private static String[] _levelNames = new String[]{"I'm too young to die", "Hey, not too rough", "Hurt me plenty", "Ultra-Violence", "Nightmare!", null};