Wordsearch generators - source code

These programs generically fit words (in straight lines, not wrapped
around odd paths as in Boggle) into rectangles.
The words may overlap. Left-over spaces are filled with letters, to
make it harder to find the words that were inserted. Words can read
in any direction including diagonally, and forwards and backwards.

wf/
Scott Turner's program to generate word searches. In C. This
code does not attempt to pack tightly.

wsfind/
Wordsrch in this directory generates word search blocks;
wsfind searches them. This was code by Dave Regan which I
heavily modified to use the DAWG data structure, and speed
up considerably. (45 minutes became 45 seconds!)
The file wsfind.c in here is, I think, a later version than ws-find.c

wordsearch/
This is Dave Regan's much newer version of the code above,
with a web front end added. (The wordsrch.c code is inside
the SupportBin subdirectory, as it is "support code" for the
cgi front-end)

wordsearch_baker/
Steve Baker's code, in C++. This program does
attempt to maximise overlap between words and thus keep the
grid as small as possible. However it comes with some heavy
warnings about how it might run forever, and he suggests killing
the program after a minute and tweaking the wordlist if it
hasn't finished by then!

potm/crozzle/
Fit a list of words into a 20x20 area, with as much overlap as
possible.
This is not a word search generator (it's actually more of
a crossword generator), but
if some of the input words it is given were reversed
left-for-right, this would be a very good starting point for
a maximally dense word search puzzle. The leftover squares
need only be filled in with dummy letters to finish off the
puzzle. The only limitation on this variation is that the
crozzle problem does not allow words to be placed diagonally.