crosswordnik 0

A crossword puzzle generator that uses Wordnik's API to find words.


This program builds crossword puzzles by repeatedly searching Wordnik’s corpus for words that fit on a grid (i.e. can be placed on the grid in such a way that they have at least one letter in common with another word on the grid and that no non-words are created during placement). By default the program uses Wordnik’s Word of the Day as the first word on the grid.


The module is a copy of the Python Wordnik API file at In order to use the API you’ll need to have a Wordnik API key.

You can get one at “”. You can pass your key as an argument to crosswordnik.CrosswordPuzzle or make_puzzle(), or you can set the variable WORDNIK_API_KEY in


Currently there’s no GUI. The text interface doesn’t suffice for actual gameplay since it can’t display both a square’s ID (e.g. the “3” in “3 Down”) and its letter. However, you can see the output of the program by doing running the demo() function in, reproduced below.

Make a 10 X 10 puzzle grid and try to add 10 words to it.

puzzle = make_puzzle(10, 10, 10) print “The grid:\n”, puzzle print “The puzzle has %d clues:” % len(puzzle.clues) pprint(puzzle.clues)

which generates something like the following:

The grid:


+———-+ |night-bat*| |eeir| |wnoi| |successful| |pecm| |artfulip| |poeh| |exurban*at| |rtcn| |silhouette| +———-+

The puzzle has 10 clues: {(1, ‘ACROSS’): (‘night-bat’, ‘A large nocturnal moth.’), (2, ‘DOWN’): (‘newspapers’, ‘third-person singular simple present indicative form of newspaper.’), (3, ‘ACROSS’): (‘successful’, ‘Having achieved wealth or eminence: a successful architect.’), (4, ‘DOWN’): (‘henceforth’, ‘From this time forth; from now on.’), (5, ‘ACROSS’): (‘silhouette’, ‘To cause to be seen as a silhouette; outline: Figures were silhouetted against the setting sun. ‘), (6, ‘DOWN’): (‘triumphant’, ‘Archaic Triumphal.’), (7, ‘DOWN’): (‘bioscience’, ‘See life science.’), (8, ‘ACROSS’): (‘exurban’, ‘Of, pertaining to, or residing in an exurb’), (9, ‘ACROSS’): (‘artful’, ‘Skillful in accomplishing a purpose, especially by the use of cunning or craft.’), (10, ‘ACROSS’): (‘at’, ‘To or toward the direction or location of, especially for a specific purpose: Questions came at us from all sides. ‘)}


  • Fix the markup for the example run.

  • See TODO.rst.

Related Repositories



A crossword puzzle generator that uses Wordnik's API to find words. ...

Top Contributors