CROSSWORDS
William Loercher
This program will construct crossword puzzles for you on a VIC, TI, PET/CBM, Atari, or Apple. There is an option to have a printed copy made of the final puzzle.
If you've ever tried to make your own crossword puzzles, you know the procedure is very time-consuming. I have designed crossword puzzles for my students in chemistry and have spent many hours toiling over fitting the correct words in their correct spaces. Procedures such as these are ideally suited for the microcomputer. This program can be run on either the 40- or 80-column PET. As written, the program will run on the 40-column screen. By deleting lines 100 and 110 and removing the word "REM" in lines 130 and 140, you can run the program on the 80-column PET.
About The Program
Lines 180–450 may be deleted if necessary since they only put a unique title on the screen.
Line 460 asks for the number of words you want to use in the puzzle. Using the maximum number makes a better puzzle, but it requires more time to complete.
Line 470 asks for the number of vertical words to be placed at random on the screen. These words are placed so that none are next to each other or on the outer border. An asterisk precedes and ends each word.
Line 480 asks if you want the results printed, assuming you have a printer. If not, you can copy the results by hand.
Line 490 dimensions the words into an array of words and an array of lengths of words. The number of words you choose to place in your "dictionary" beginning at line 2000 is limited only by computer memory.
Lines 510–520 print on the screen 23 rows of 39 blocks to be used as the test field.
Lines 530–610 test the field for proper positions and print the vertical words.
Lines 620–890 test the field for horizontal words and POKE them on the screen if the proper conditions are met.
Lines 920–970 enable the printer to make a copy of the puzzle as it appears on the screen.
Lines 980–990 are the subroutine for choosing a random screen position.
Line 1000 is a time delay for the title program.
Lines 1020–1030 are used to choose a random word from the array to be displayed on the screen.
See Program 6 for the DATA statements to be added to the program.
Lines 2010–2110 are the DATA statements containing the words used in the puzzle. If you want, you could substitute your own words for mine.
Suggested Improvements
After completing the program, I thought of other ways to improve it. First, after all 23 rows are tested (Z = 23), you could write another section to the main program that tests the columns for word fits. This should result in a better puzzle.
Second, you could keep track of the words that fit a given location in another array and then choose the longest word from that list. If any of you come up with something interesting, write me.
If you do not like typing your own programs, I will send you a taped copy of the PET version only. Send $3, a cassette tape, and an SASE mailer to:
William Loercher
314 W. High St.
Manheim, PA 17545