Crossword generators - source code
This is a resource of the
wordgame-programmers@egroups.com
mailing list.
Click to subscribe to wordgame-programmers
These programs generate crossword puzzles, either to a fixed grid
or to get as many words as possible into a fixed area. The latter
kind of generator is more closely aligned with word squares and
will be listed there. These ones use a given grid:
- Christian Schulte's crossword generator (cpp) [new]
- cross/
Rob Mayoff's crossword generator (aka "1down") severely hacked
by me to use a DAWG, thus speeding it up by quite a chunk.
Rob did later make similar mods to his own original
program, but when last I spoke to him, he had lost the files.
- cword/
Robert Tappan Morris's (Yes,
that RTM) crossword
builder. Acceptably fast. Can work around already placed
words. Try it online.
- Arc Consistency Crossword Compiler
Most recent addition to this page. Hosted at Sourceforge
- hsr_crossword
Source code pack for a crossword application written for a NeXT
machine by H. Scott Roy (hsr@cs.stanford.edu)
The program is intended to provide a testing ground for different
search algorithms. It acts as a visual tool to identify the strengths
and weaknesses of a particular method. Doubtless it can find excellent
use in an introductory artificial intelligence course. With a little work
and proper understanding of the code, one can add new search algorithms to
the program.
This is written in Objective C (from the NeXT system).
- gatekeeper/grid_generator.lisp
This is a grid generator written in common lisp by Don Geddis
(geddis@cs.Stanford.edu).
- gatekeeper/openwindows.sh
This is an American-style crossword puzzle generator/solver with nice
graphics and dictionary help. Compiles on a Sun Openwindows 4.1.2
platform. It was written by John Staples (staples@csg.lbl.gov).
- Clueless Crosswords
Crossword solver (known grid, known answers - best fit)
- Maxiscore
See Jean-Charles Meyrignac's highly customised crossword filler
for a subset problem called "Maxiscore".
(See his file "mail.txt" and look particularly at the examples
at the end of the file)
- WordJunction
Windows program to create crosswords and word-find puzzles.
Home page.
- gatekeeper/latex_formatter.txt
This is a small C language utility to create LaTex crossword output
posted to rec.puzzles.crosswords in 1992 by MT Raghunath
(mtr@cs.berkeley.edu).
- spell/SpellLib/wild.c
A small utility to search for words, using wildcards. Useful in manually
solving crosswords, or could be built into a utility to do so. (For instance
similar code was modified and made the basis of my cryptogram solver)
- Carl Hayne's Java Applet
Here's an pretty crossword display in Java that is free! (from here)
(Compare it to the commercial Crossword Express applet below).
This is a hand-crafted applet for one particular crossword.
What is needed is an applet generator that takes a crossword
definition file and builds a source like this. (Or indeed
does it all on the fly)
- Crossword Compiler derived from Sik's
This is available in source code with some of the algorithms
derived from "Sik's Thesis" below. (unpacked local copy)
- Phylum Tea's open source crossword code
Phylum Tea (try anagramming it...) writes commercial crossword code, but has
generously released some open source code for completing crossword puzzles to the net.
Read the tutorial then download the source code.
- David A. Madore's grid generator
Pretty nice grid generator, working with CSP.
Short and quite fast.
It will fill grids with holes placed as the queens' problem (but it's
easy to change that).
Your dictionary must contain all one word letters, otherwise it won't
find anything.
- Filling with dancing links
- A freeware Linux solver
Seems to fill using CSP (Constraint Satisfaction Problem) algorithm.
Source code here
- Articles on crossword solving for Romanian crosswords
No code, just some articles.
These ones don't and will also be listed under "word squares"
Finally, here are pointers to other crossword generators or solvers for which
we have not yet located source code, and some interesting papers. Note there
is a whole area of cryptic crossword solvers for which we have no sources
here. (We have some papers, and you can buy them commercially)
- The Probabilistic Cruciverbalist
Impressive AI project on solving American-style non-cryptic crosswords. (Demo)
- One Across
Also offers some help in solving American-style non-cryptic crosswords. I suspect this works
by a relatively simple inference engine using something like wordnet to
find common links between words in the clues.
NOTE: Greg Keim is working on both Proverb and OneAcross above.
(pdf paper)
- Crossword Maestro
Commercial cryptic crossword solver.
- Themed Crossword Generator Project
- Sik's Thesis
(he also has a great links page although many
links are unfortunately now out of date - it was written in 1997)
Veteran word-gamers might like to study the section in his thesis where he
reinvents the DAWG data structure rather poorly - the biggest mistake
being that he separates each word by length thus losing a huge
amount of tail compression. Also he's not too hot on the implementation
of tries using indexed arrays versus linked lists. (cf Liang's packed
trie algorithm). Small nit-picks like this notwithstanding, it is a
good paper and worth a read.
- gatekeeper/berker.txt
This is the text of a paper co-authored by Ilan Berker
(berker@wpi.edu) on automatic crossword generators.
Although the paper says "in Turkish", it applies to any language.
- zafer/zafer.pdf
File zafer.ps from the Gatekeeper archive converted into pdf
format. Report (in English) on a Turkish crossword generator project.
(Different from the one above)
- Commercial Danish word-game/anagram/word-lookup
site
- Fitwords
Clueless crossword puzzles.
- Crossword Wizard
Macintosh crossword generator (including clueless crosswords.) Commercial.
See the manual for more info.
- Java Crossword and Anagram Generator
I couldn't get it to work so I have not bothered to look at the class files
with Jad.
- Download Express
See what else is out there on the net with this download search engine.
- JARS (Java archive)
Or this one.
- About.com's list of crossword software
And some more links to crossword software from about.com (aka miningco)
- Crossword Express
Commercial crossword generator with pretty Java web display.
(Actually, they're not all as pretty as that one)
Later news: it turns out that the good-looking display for .cwe files is from
a clone of the program written in Java. Here's the author's crossword
generator page and here is his crossword display page. (assorted
other stuff)
- Online Crosswords
Here's quite a good Java applet for interactive crosswords and word-search
puzzles.
- USA Today puzzles on Palm Pilot
A perl script and palmpilot program to convert USA Today format
puzzles into something that can be played on the Palm Pilot. (Also Mac version)
- Mirror of now-defunct DEC GateKeeper crossword archive site
- Across Lite LaTeX support
Also from the DEC GateKeeper crossword archive site, a package to format
"Across Lite"
puzzles in Latex. Notable to us primarily for its C source code, by Bob Newell, to
decode Across Lite .puz files.
- Crossword shapes/grids/layouts archive site
Useful grids if you are creating your own crossword puzzles. There are
many more of these on the net, some in readable formats, some in
proprietary formats. I will not be listing any in proprietary
formats unless I can also include a source program that can
decode them properly.
- The old rec.puzzles.crosswords FAQ
I believe this has not been supported for some years but may still
contain a few pieces of timeless wisdom.
- Gary Meehan's paper on crossword constraints
Constructing Crossword Grids: Use of Heuristics vs Constraints (with Professor Peter Gray). Proceedings of Expert Systems 97:
Research and Development in Expert Systems XIV, SGES Publications, 1997, pp 159-174.
(what happens when you think too hard about something instead of
just doing it. Would have got more benefit from thinking about the
data structure than the algorithms)
- Constraints in filling crosswords
Brief lecture notes and a worked example.
- Russian crossword generator
(and links to a solver
at Crossword Magazine)
- CPT: Crossword Power Tools
Commercial crossword editing kit, written in Java (source not distributed, but I guess if anyone
was being real nosy they could see how it worked using a Java decompiler) for
Linux and Windows (or anything with a Java runtime I guess). Local copy here.
[Collection of crossword shapes for this code]
- XWord Studio crossword generator
Greg Chapman's Macintosh shareware program. No sources, but there is a writeup of the
code.
Closely related to this field are wordsquare generators
and wordsearch generators.
Return to the Archive overview.