JIGSAW 1.0
Jigsaw 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 jigsaw 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 jigsaw pages in any links listing
       that I might make, please 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 the applets use.
    5. I ask that you do not redistribute the jigsaw applet either in part or as the
       the zip file without my permission.
and DEMAND that,
    1. All class and jar files MUST NOT be tampered with or modified in any way.
    2. All class and jar files MUST NOT be reverse engineered.
    3. Commercial site MUST ask for, and receive permission from me 
       BEFORE using the applet.
in addition,
    I do not accept responsibility or liability for any damage or loss caused either directly or indirectly 
    by the use of the applet or any component part. Neither do I accept any responsiblity or liability
    for any damage or loss caused by the download or extraction of any or all of the supplied files.
    This applet is supplied on an "as is" basis, I do not guarantee it's ability to function or it's
    fitness for use in any way.
    
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.

The Jigsaw applet require's a Java 1.1 enabled browser !



PLAYING JIGASAW
The jigsaw will start with the picture broken up into pieces. If the mouse is moved over a piece, a highlight should be seen. It is then possible to move the piece by pressing the left mouse button and holding it down whilst "dragging" the selected piece.
If pieces can be rotated (see the "CanRotate" option) the selected piece can be rotated by clicking the right mouse button (Note that this is not a true rotation, but a flip and mirror sequence 1,2,3,4)
If the "KeepBoardClear" option is set. Pieces that are NOT placed fully inside the picture building area can be shuffled around by clicking on the "Tidy" button. This makes it easier to "Sort" through playing pieces that are not placed inside the building area.
This option works with "KeepBoardClear" not set, but it will place pieces randomly over the building area which is not so helpfull.
The "Breakup" button does exactly that and breaks up the puzzle.
The "solve" button can be used to solve the puzzle.
When the puzzle is correctly solved, a message will appear on the top line. If this does not appear and the puzzle "seems" to be solved, it is usually because a piece is in the wrong place or is rotated into the wrong position.

It is possible to "lose" pieces under other jigsaw pieces (just like real life eh?). If this happens you should move the visible pieces one at a time to try and find the lost piece.

Each time the jigsaw applet is started (not when you use the breakup button) the jigsaw will be cut up randomly. This means that the pieces may be cut differently each time.


USING JIGASAW
The jar file, Jigsaw.jar 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 with your own.
    <applet archive=Jigsaw.jar code=Jigsaw.class width=500 height=450>
      <param name=Image              value="me.gif">
      <param name=ImgWidth           value=290>
      <param name=ImgHeight          value=290>
      <param name=Rows               value=4>
      <param name=Cols               value=4>
    </applet>


REQUIRED PARAMETERS
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 jigsaw.
name=Cols value=n This sets the number of columns to use for the jigsaw.
name=Image value="filename" This is the filename for the jigsaw image.
name=ImgWidth value="n" The desired width for the jigsaw picture.
(The image will be scaled to fit the width that you specify)
name=ImgHeight value="n" The desired height for the jigsaw picture.
(The image will be scaled to fit the height that you specify)

OPTIONAL PARAMETERS
name=DimHelpImage value=n If this is set, a "dimmed" copy of the jigsaw picture will be used as a guide in the picture building area.
The higher the value, the greater the dimming effect.
name=HelpImageGrayed value=true If this is set and a dimmed guide image is used, the guide image will be converted to gray scale.
name=AutoSnap value=v This is used to make it easier to correctly place the playing pieces.
When plaing pieces are close to their correct location, they will be "snapped" into position.
The value can be between 0-15, where 15 snaps from the greatest distance.
name=KeepBoardClear value=true If set, this keeps playing pieces away from the picture building area when the jigsaw starts and when the breakup button is used.
name=Connector value=n This is used to modify the size of the connecting links.
If you create a jigsaw with large pieces and want larger connectors then increase the value. The value is between 0-4.
NOTE: care should be taken to ensure that this size is not too large for the puzzle pieces otherwise you may get incomplete connectors.
name=CanRotate value=true Allows the pieces to be "rotated" using the right mouse button and will randomly "rotate" pieces when breaking up the puzzle.
In reality, this "rotate" is a flip and mirror sequence rather than a real rotate.
name=PictureAlign value=align Set the alignment of the jigsaw building area.
top = aligns at the top right corner.
spaced = aligns at the top right corner but below the buttons.
bottom = aligns at the bottom right corner.
center = aligns at the center of the applet area.
You should take care that there is sufficient space (if using KeepBoardClear), to place the games pieces away from the play area. Otherwise the program may lock up trying to find valid locations for pieces (this is why I prefer right alignments over the center).
name=BgColor value="hex color" This sets the background color for the applet.
name=OuterFrameColor value="hex color" This sets the color for the applets frame.
name=InnerFrameColor value="hex color" This sets the color for the frame around the picture building area.
name=BoardColor value="hex color" This is the color for the jigsaw assembly area if a dimmed guide image is not used.
name=SelectColor value="hex color" This sets the color for the "mouse over piece" highlighting rectangle.
name=TextColor value="hex color" This sets the color for the "jigsaw completed" text.

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

For more information please refer to the example html files provided.


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