We are May and Kevin, two recent college grads and crossword enthusiasts. With May's background in literature and poetry, and Kevin's background in statistics and computation, we decided to combine our interests to create CrossWorthy! Most of our grids are first generated by a Python algorithm, then edited and/or expanded by hand before we write out their clues. We upload our best crosswords to CrossWorthy.net, where anyone can play them for free. Please email us at firstname.lastname@example.org with any theme requests, comments, contributions, or more!
From great grids to clever clues, crosswords are art. Yet making crosswords is no easy feat, as we quickly learned when we first started out. Although May enjoyed creating 5x5 minis by hand via May's Minis and experimented with creating larger grids, designing 15x15 puzzles posed more of a challenge. So, Kevin decided to try writng an algorithm that could churn out boards faster than we could on our own. Of course, automating crossword generation comes with its own set of challenges, mostly guided by one question: How can a computer replicate the artistry of crossword boards?
Currently, our program sources words from a few different corpuses across the internet—dictionaries, common phrases, celebrity names, and more. We also keep a large collection of possible grids, with certain squares blacked out and others open for letters. The empty grids with blacked-out barriers are generated randomly, with a few optimizing tweaks here and there, but they always maintain rotational symmetry. When it's time to fill out a grid, the algorithm picks the toughest word-location to fill and inserts a word there first. It repeats this process until the puzzle is filled, always selecting the word that is least restrictive on the rest of the board.
Depending on the grid shape, the theme—we often provide a list of possible theme words, which the algorithm tries to incorporate where possible—and other factors, it usually takes about an hour to generate 500 unique grids. Yet it's almost impossible to fill a grid with real words this way, and most puzzles will inevitably contain "nonsense" words. But 1% of the grids generated will be no-nonsense, complete crosswords. These then become the puzzles we select for our website.
Finally, we plug the grids into AmuseLabs and continue to expand and improve them by hand before writing out original clues. As we continue to improve our algorithm and intuition, we hope our puzzles will become more daring, creative, and fun!