Contents of the PUZZLE.DOC file

PUZZLE

The PUZZLE program is an interactive jigsaw puzzle using the computer to create the initial pictures. The program provides two different ways of playing jigsaw type puzzles. These puzzle varieties coupled with a user setable difficulty level and number of puzzle pieces make the PUZZLE program suitable for both small children and adults. (My two children, ages 3 and 5 are able to play PUZZLE unattended. At PUZZLE's most difficult level, adults have found it difficult to complete.) You may freely copy, modify and distribute this program to friends and store on bulletin boards as long as it is not for profit.

HARDWARE REQUIRED

o IBM PC, IBM AT with either the CGA or EGA graphics board. o Alternately the program does run under simulation on a Hercules graphics board with a program such as SIMCGA. o The program has not been tested on an IBM-PC jr. However, there is no reason to believe the program will not run on an IBM-PC jr.

SOFTWARE PROVIDED

The PUZZLE disk contains three files, this document file (PUZZLE.DOC), the executable image (PUZZLE.EXE) and the source for the PUZZLE program (PUZZLE.BAS).

OBJECT OF THE GAME

The object of the game is to assemble a jigsaw puzzle in the large checker board on the right from the pieces provide by the computer. The computer will provide a single piece in the lower left corner of the screen and a small picture of the puzzle as a sample of the finished puzzle in the upper left hand corner. To select the location to move the puzzle piece, move the cursor (a blinking ball) to the desired location and press enter. If the location is correct, the puzzle piece will be transferred to the puzzle board. If the location was not correct, a new puzzle piece will be drawn at random until all pieces have been success-fully placed. (For the Classical puzzle, three guesses are allowed before the puzzle piece is changed).

For the modern puzzle, a score will be kept. Fifty points will be awarded for each correct piece placement, ten points will be subtracted for each wrong guess, as well as one point subtracted for each second of indecision.

KEYS USED

The following keyboard keys are used:

o Arrow keys are used to move the cursor around the puzzle, o Enter Key is used select the current position, o R or r key are used to rotate the current puzzle piece to gain a better view of the piece. (The puzzle piece does not need to be rotated correctly to be placed correctly.) o Escape key will allow the user to end the game or start a new game.

RUN TIME OPTIONS

There are four run time options that provide different levels of difficulty. These options are:

(These options will be available at run time unless they are preselected in lines 55-70.)

The Classical versus Modern puzzle image option allows the user to assemble one of two types of pictures. One picture which uses recognizable objects like bicycles and balloons, and another which uses rectangles, circles and dots to form a pattern.

The picture difficulty option (used in the Modern puzzle) refers to the granularity and type of objects within the puzzle picture. For a difficulty of 1 the rectangles are relatively large and few and there are large circles to assist in understanding where even a rotated piece should go. (At difficulty 1, a checker board will overlay the sample puzzle image. Difficulty 2 is the same as difficulty 1 but without the checker board overlay.) For a difficulty of 7, the size of the rectangles decreases while the number increases. Coupled with a loss of the circles as references, the puzzle image will contain a finer structure. At level 9 and 10, the puzzle will have an even finer structure but will no longer have recognizable border pieces.

The picture granularity option (used in the Classical puzzle) is used in conjunction with the puzzle piece size to select a difficulty level. Picture granularity (1 to 6) refers to whether the puzzle picture is to be a 1 x 1, 2 x 2, ... 6 x 6 puzzle image with one image in each position. (A 6 x 6 puzzle will have 36 small pictures on the puzzle while a 1 x 1 will have 1 large picture.)

The picture size option for the Classical and Modern puzzles refer to the size of the checker board cut-out and its puzzle pieces. A size of 3 will overlay a 3 x 3 checker board over the puzzle image and create nine puzzle pieces. A size of 8 will create a puzzle with an 8 x 8 checker board and 64 pieces.

For the Classical puzzle option try the following combinations of puzzle size and picture granularity:

o puzzle size identical with picture granularity o puzzle size twice that of picture granularity o picture granularity twice that of puzzle size o picture granularity of one and a puzzle size of three

The piece rotation option is available to both the Classical and the Modern puzzle users. (It is not recommended for small children. They become frustrated and may quit forever.) With this option selected, the puzzle piece is rotated randomly before being displayed. The piece may be rotated to get a better view by entering either an upper case or lower case "R". In either case the puzzle piece need not be rotated to its correct alignment to be placed correctly.

PRESELECTING THE RUN TIME OPTIONS

In order to allow small children to run the game without much supervision, the game difficulty, puzzle size, rotation and Classical puzzle image options may be preselected. The preselected values should be included on lines 70 to 85.

ADDITIONAL PUZZLE ELEMENTS

The PUZZLE program has been written to allow additional puzzle elements to be added to the classical puzzle. To add a new picture create a self contained drawing subroutine near the end of the program (starting at lines 1175, 1185, 1200, 1215, 1230, 1245, 1260 and 1275).

Each drawing subroutine must draw an image given the center of a box (M,N) to contain the image and the width of the box (Q). (The small puzzle picture is 96 x 96 pixels and the large picture is 192 x 192. Warning. Small features will not show up.) Three color indices (C1, C2 and C3) which will be incremented to allow three differently colored pictures to be produced using the subroutine are also available. In addition, two random numbers are available (ZR1 and ZR2) that are in the range of 0 to 1.0, along with nine constants that represent 5%, 10%, 15%, 20%, 25%, 30%, 35%, 40% and 45% of the width (and height of the drawing box. These constants are Q05, Q1, Q15, Q2, Q25, Q3, Q35, Q4 and Q45 respectively.

Each picture type (or drawing subroutine) will be defined uniquely by a GOSUB and by a counter (CI) of the number of times a picture has been drawn. To signal the code that a new subroutine is available increment the variable NC (number of classical elements) in line 50 by one for each new picture element subroutine that you supply. Once the subroutine has been written, the routine may be tested by changing the value of the variable, PTEST, in line 75 to the picture number for your subroutine and running the PUZZLE program. (The next available picture element is 18 out of 25 possible drawing routines.)

For example, classical picture element number 2 is a square and is defined by the code included in line 880. This code is described below:

LINE(M-Q35,N-Q35) - Draw a filled box that starts (M+Q35,N+Q35),C1,BF above and to the left of the center of the drawing box to a point that is below and to the right of the center. The dis- tance above, below, to the left and to the right is given by the variable Q35 (70% of width of box). Use the current random color (C1).

RETURN Return to calling routine.

ACKNOWLEDGMENTS

There have been at least three people who have helped to make this game what it is today that I wish to thank. Two children, James and Darcy, for whom this game was designed and customized to entertain. Without their encouragement and desire to play each version of the game during their evenings, the game would not look as it does today. Also to some anonymous programmer who created the first Jigsaw puzzle shell (similar to the modern puzzle option) I give thanks.