Supermarket shoppers are already familiar with "word-find" puzzle books, which grace the checkout-line magazine racks of America. The program presented here will enable you to make your custom word puzzle on any Atari equipped with a disk or cassette, and a printer (40- or 80- column). This puzzle might prove useful as a spelling study aid, as a quiet alternative to video games, or as party entertainment. In fact, I originally wrote this program for a friend who needed it for sales promotion party.
Before typing in the program listing for Word Find, note the changes required for your printer. The "PW" equate in line 60 indicates the printer width for centering the printouts. If you have a 40- or 80-column printer, change this line accordingly. A 40-column printer will require the following code changes as well:
1150 C=C+1:IF C=2 THEN C=0:? #3
1460 ? #3;PUZZLE$(A,A);
This will put two words per line in the word list, and will change the puzzle from double to single spacing horizontally. Double spacing is used to help make the Word Find puzzle easier to read.
When the program is run, you will be asked for a puzzle between 10 and 30, then you will be requested to input filename that your word list is on. Type NEW to go to the subroutine for creating a new word file. This can be put to cassette, C, or a disk file, D:name. Type END when you are through inputting new words. You must then input the title of the Word Find puzzle that will be created, and select difficult or easy puzzles. The program will place words in the letter matrix vertically, horizontally and diagonally for "easy" puzzles and at any angle, with 45-degree increments, between zero and 360 degrees for "difficult" puzzles.
You will then be asked for the number of copies and, if more than one is desired, whether different or identical puzzles should be printed. Different puzzles will use the same word list, but the words will be hidden differently. Finally, you may select cheat sheets if you wish, an example of which is shown in Figure 1. This is a printout of the puzzle after all the words have been placed, but before the asterisks are replaced with random letters. Figure 2 is an example of a completed Word Find puzzle.
Sometimes a word read from the input file will not fit in the puzzle string, PUZZLE$. The variable TEST is used to keep track of how many times the program selects a vector and beginning position, and attempts to fit WORD$ into PUZZLE$. The program will try more times as the word count increases, because it will be increasingly difficult to find an open spot in the letter matrix as each word is placed. Once the program has tried the maximum number of allowed attempts without success, the word will be thrown out and deleted from the printed word list in the final Word puzzle. Generally, if the puzzle size is equal to the total number of characters in the longest word to be placed, most, if not all, of the words will fit. Making the puzzle oversized will probably insure that all the words can be placed, but may increase the difficulty of word finding.
The program limits the number of words in any puzzle to three times the puzzle size. Maximum word length is limited to 14 characters (see line 1670), with the fifteenth character position in WORD$ always blank to format the output. This can be expanded up to 20 characters for 80-column printers by modifying the DIM's for WORD$ and WSV$, and by changing the 15's in lines 570, 600, and 1140 to the new maximum word size. Line 1670 must be changed as well.
When creating a word file, all printable characters (on your printer) are allowed, including punctuation, except for the asterisk (*) and comma (,). The asterisk is used to indicate "this space is empty" in PUZZLE$, when filling it with the words read from the input file. The comma will print out to the word file properly, but will input from the file as separate words, dropping the comma altogether (not as a phrase with an embedded comma, as intended). Lower case characters are also allowed, if your printer can handle them. Note that the LTR$ equate in line 70 only includes upper case characters A through Z. Should any different characters be put in the word file, such as lower case or spaces, they should be added to this equate. The random-letter fill routine will then include these characters from LTR$ in the puzzle matrix as well, so that your "special characters" will not make the locations of these words obvious.
Once you have this program typed in and checked out with TYPO, change the printer setup code and feel free to customize Word Find in any way you wish. The code is heavily commented, so that you can tell what is going on. The program will run on a 16K machine, but may very well run on an 8K machine by eliminating all the comments and making smaller puzzles.
Download WORDFIND.BAS Download