PUZZLE is distributed as FREEWARE for NON-COMMERCIAL use.
This means that you are free to use this applet as much as you want to for "non-commercial" sites and you will not be asked to pay anything for the use of it.
I do not ask for, or accept, any payment for this applet or it's use !
Sounds like a good deal, that because it is !

I do ask the following,
    1. You just send me a quick mail message saying that you are using it.
    2. You send me the http address of your puzzle page(s). 
       I like to look at these, it's nice to see how people are using it.
    3. If you do not want me to include your puzzle pages in any links listing
       that I might make, let me know. Otherwise I will assume that I can.
       (if you say no, then I will respect that).
    4. A link back to the puzzle homepage http://home.sol.no/~svw2/puzzles,
       would be appreciated, but is not a condition of applet use.
    5. I ask that you do not redistribute the puzzle either in part or
       the zip file without my permission.
and DEMAND that,
    1. The class files MUST NOT be tampered with or modified in any way.
    2. Commercial site MUST ask for, and receive permission from me 
       BEFORE using the applet.
Sending me the above information about you and your site, might also help you. I can e-mail people with information about upgrades, known problems, bug fixes or anything new that I decide to make freely available.
This version (1.1) is a result of feedback that I have received re: problems on some non-windows platforms and things that would be nice to include.

Commercial user's MUST ask for permission before using this applet. I DO NOT charge for this applet, but I do reserve the right to decide if I want to allow it's use on individual commercial sites. My decision on commercial sites is based on how you intend using the applet and the type of site.

Puzzle require's a Java 1.1 enabled browser !

The two class files, Puzzle.class and PuzzleTile.class should be moved to the directory where your HTML file is, and the following html code should be added to your HTML document and the parameter values replaced by your own.
    <applet code=Puzzle.class width=230 height=300>
      <param name=rows            value=3>
      <param name=cols            value=3>
      <param name=boardColor      value="#004f4f">
      <param name=tileColor       value="#8f8f8f">
      <param name=canMoveColor    value="#00ff00">
      <param name=cannotMoveColor value="#ff0000">
      <param name=image           value="images/rose.jpg">

width=n This sets the width of the applet area.
height=n This sets the height of the applet area.
name=rows value=n This sets the number of rows to use for the puzzle.
name=cols value=n This sets the number of columns to use for the puzzle.
name=image value="filename" This is the filename for the image.
(Images with pathnames should use '/'. ie "pathname/file.type").

name=boardColor value="hex color" This is the color for the gameboard (behind the tiles).
(The default color is "#004f4f", very dark).
name=tileColor value="hex color" This sets background color for the tiles.
(The default color is "#8f8f8f", gray).
name=canMoveColor value="hex color" This sets the color to use when the mouse is over a puzzle tile that can be moved.
(The default color is "#00ff00", green).
name=cannotMoveColor value="hex color"
name=cannotMoveColor value="off"
This sets the color to use when the mouse is over a puzzle tile that can not be moved.
(The default color is "#ff0000",red).
In addition, this can be set to "off", in which case there is no change when the mouse is moved over a tile that cannot be moved. This is useful to reduce flickering as the mouse is moved around.

Colors are defined as an RGB hex string (in the same way as other HTML commands).
The sequence is "#RRGGBB"

    1. To achieve a square game area the applet height should be set 
       approximately 70 units larger than the width.

    2. When using animated GIF's, you will get less "flickering" if you make 
       the background for the GIF transparent. 
       This is easier now that you can set the tile color to whatever you like
       so that you can get the correct background.

    3. Keep the width and height as small as possible when using animated GIF's.
       This will also help to reduce "flickering". 
       In addition, use small game grids (3x3, 3x4, 4x4).

    4. Do not make the puzzle width less than about 200. If the game width is
       less than about 200, the counter will disappear.

    5. Think carefully about the picture's you choose to use and how easy it is
       to identify the individual squares when the picture is broken up.
       For example if you have 3 squares that are just black, how will anyone
       know which ones are which? (important as the counter will not show green
       when the puzzle looks like it has been solved).
       Also, it is not so much fun if there are multiple "solutions".

Update: 28/02/99
Author: Steve White.
Puzzle homepage: http://home.sol.no/~svw2/puzzles.