Total votes: 1
Print: Print Article
Please login to rate or to leave a comment.
Published: 11 Jan 2010
Most programming-related crossword puzzles are generated by computer programs, and consequently lack the design and wordplay which makes New York Times-style crossword puzzles interesting. I decided that I could do better.
This article contains "spoilers" for the puzzle. If you intend to solve the puzzle yourself then you should do that before reading the article. You can find the puzzle at the end of the article.
If you're a programmer who enjoys solving crossword puzzles, you may have seen, from time to time, puzzles in programming magazines. If so, you'll have noticed that they're usually not very good. There are a number of free software crossword puzzle generators, which can quickly and easily generate uninteresting puzzles. "Real" crossword puzzles require human intelligence to select an appropriate group of answers, write interesting clues, and build a grid which is appropriate to the puzzle.
Crossword puzzle style varies regionally; puzzles in the UK are significantly different from puzzles in the United States. I suspect that other countries have their own distinct style. In the US, the de facto standard for crossword puzzles is the New York Times. That newspaper has a number of rules for their puzzles. There are many constraints on the design of the grid, for example:
- Daily puzzles, for example, are always 15*15 cells.
- Words cannot be shorter than three letters.
- All letters must be "checked"; this means that the letter must be part of both and across and a down answer.
- The grid is nearly always symmetrical.
- Black squares cannot be used to "wall off" one section of the grid from another.
- There is a maximum word count which effectively limits the number of short words.
More importantly, however, the puzzles are expected to be "fresh," "lively," and fair to the solver. Constructors need to take care to not cross two very obscure words, to have a diverse mix of subject matter, and to have imaginative clues.
If you do a web search for crossword construction software, you will find a lot of results for free programs which produce bad crosswords. Because these programs don't have dictionaries or very much intelligence for how to create a good grid, they create asymmetrical crosswords using only the answers which the user provides. Therefore, most of the letters are unchecked (meaning that no word crosses them in the opposite direction). And of course these applications don't come with the knowledge of how to create a theme or interesting clues.
There are also a couple of commercial applications aimed at professional crossword constructors, who sometimes call themselves "cruciverbalists." However, buying one of these applications will not by itself allow you to create a professional-quality crossword puzzle; they require skill from the user, although they do help with some of the more mundane tasks. It is necessary to spend time solving puzzles, so that you understand the expectations of your audience. Also, your skill at solving puzzles is directly useful for creating them; in both cases you are attempting to find a way to fill in the grid.
How I created the puzzle
The first step is to decide if you're going to have a theme for the puzzle. Themed puzzles are somewhat easier to solve. Generally, the longest clues in the puzzle all relate to the theme. My theme was general software development, with a .NET focus.
Brainstorming theme words
So I started by creating a list of possible theme answers. I did this on graph paper, to make it easier to see the length of each answer. The first few words in the list looked something like this:
So at this point I'm just brainstorming. Eventually I decide that I want to use a couple of 15 character answers. Answers this long will largely dictate the shape of the grid. But I knew that I would need additional, shorter, theme words to fill in the rest of the grid, so I made a fairly long list.
Designing a grid (in other words, the layout of the black squares) which conforms to the rules above is more difficult than it may seem. In fact, if you're looking for a shortcut when creating your own puzzles, using an existing grid (from a published puzzle) can save substantial work. Also, this is one of the areas where professional-quality crossword creation software can be really useful; the analysis of the grid can be automated to ensure that, for example, no answers will be shorter than three characters and no areas on the grid will be walled off from other areas by black squares.
In my case, I used manual trial and error to create the following grid, with the 15 character answers included:
Now I have to look for potential trouble spots. I have to think about the intersection of longer words, such as the eight letter answers which cross with 15 and nine letter answers. I also need to be on the lookout for unusual letter patterns, like a three letter answer which starts with 'Q'. So after filling in the eighth and nine letter answers, the puzzle now looks like this:
Again, I'm looking for trouble. Look at 7 down; there are not a lot of three letter words ending in 'H'. So I need to keep my eye on things like that as I fill in the rest of the puzzle.
Just as before, I move on to the hardest areas I can find; the general rule and filling in the grid is to start with the harder areas and work your way up to the easier areas. So I'm looking for the longest answers with the most unusual letters. The other thing I do is attempt to fill in the grid symmetrically. If, for any reason, I have to change the layout of the grid (the position of the black cells), I will have to make the changes symmetrically. So filling in the letters on the grid symmetrically means that I will have to redo a lot less work in this case.
The next-hardest area I can find is the top right and bottom left corners, where, in each case, four 5-letter words cross each other. I'm going to start on the bottom-left, because it includes the letter 'V' near the end of a word, which is less common than the letters in the top-right for their word positions. Let's start with that 'V'; I chose PROVO since it seemed to provide good letters for the corresponding down answers. Now this section looks like:
For 52 down, either GROSS or GLOSS will help for 65 across and 68 across. I choose the former, since ORM for 54 across fits my theme:
Now I just use trial and error to fill in the remaining answers in this section. Professional crossword software has an "auto-fill" feature which can make this easier, but if you're at all good at solving crosswords, you may find it faster to do this in your head.
At any rate, I end up with:
Although I was pretty confident that DOERS was actually a word, I looked it up in the dictionary anyway. You can get yourself into a lot of trouble if you misspell an answer, so always check your words!
I then moved on to the top-right, and then filled in the rest of the grid in a similar manner.
As I filled in the remaining answers, I tried to make them relate to each other in an interesting way. For example, having used PROVO, a city in Utah which is home to a well-known software manufacturer, I later decided to use OREM, another city in Utah which is (well, was) home to a well-known software manufacturer. Also, when two words intersect, you don't usually want to make them obscure in the same way, unless you're trying to produce a very difficult puzzle.
Although I had some ideas for clues from the outset, I didn't spend a lot of time on them and tell the grid was complete. There's no point in spending time writing a clue for an answer which might have to be removed as the grid evolves.
People who solve crosswords tend to be good at certain kinds of clues and bad at others. For example, I'm reasonably good at science clues, but terrible at sports clues. Likewise, some people might be good at "fill in the blank" clues but bad at puns. So a good puzzle will have a mixture of different kinds of clues.
The different kinds of clues in the puzzle include:
- Fill in the blank, e.g., "Bit _____" (ROT)
- Homophones, e.g., "Conceals or skins" (HIDES)
- Other wordplay, e.g., "One third of a dance?" (CHA) – think of "cha-cha-chá"
- Related clues, e.g., "It's not RESTful" (SOAP) and "It's restful" (NAP)
- Specialized knowledge, e.g., "Do-nothing ASM" (NOP)
There are also some rules to follow when writing clues. Generally speaking, if the answer is plural, then the clue should be plural, as well. Likewise, if the answer is an abbreviation, then the clue should itself contain an abbreviation. The clue should not contain the answer, so you would not use "Gnu's Not Unix (abbr.)" as a clue for GNU.
Although I was, in a sense, editing the puzzle continuously throughout its creation, I spent additional time doing formal editing after it was complete. This included looking up most of the terms used in the clues. For example, I discovered that I had misspelled "Ms-PL" as "MS-Pl"; the former capitalization is correct. Also, I used voice transcription software to transfer the clues from my original, pencil and paper draft to the electronic version you are reading now, and this introduced errors which I had to fix. Errors are bad in any written work, but they're obnoxious in a crossword puzzle, as errors can make it difficult to impossible to solve the puzzle.
The Crossword Puzzle
This is a programming and .NET-themed crossword puzzle.
1. Outfielder or salad
5. It's not RESTful
9. Code conditional
15. Lock part
16. Remove suds
17. It can be O(n)
19. Rub out
20. Do-nothing ASM
21. Binary bit
22. ADO.NET _____
31. White mineral
32. The _____ (Cameron film)
34. Auditor (abbr.)
35. "Would you like _____ with that?"
36. Aluminum producer
37. "The _____ Particle " (Higgs boson)
38. GUI library for Turbo Pascal
42. It's on the Help menu
43. Your code is full of them
48. Pack of paper
50. Expression of boredom
51. Language _____
54. 22 Across, e.g.
55. €, per ISO-4217
56. Utah city, home to Novell
59. Ms-PLed Web framework
65. Conceals or skins
66. Appoint or chair
67. Utah city, home to WordPerfect Corp.
68. Not slackers
69. Debugging expert Ferrandez
1. One third of a dance?
3. The _____ (Roald Dahl book)
4. Enhanced with technology, as Steve Austin
5. Freighter factory
6. A grain
7. Byproduct of combustion
8. Concentration meas.
9. "Goodnight, _____" (folk song first recorded by Leadbelly)
10. Digital defense
11. Watson and Crick discovered its structure
12. Racetrack feature
18. Bit _____
21. Sounds heard in a yoga class
22. UNIX directory containing conf. files
23. It's restful
24. WTF, BCL, JIT, etc.
25. Cybercrime investigators
26. Grain alcohol?
28. Not NYSE or NASDAQ
29. Tigger's pal
30. Pressure meas.
35. Thrown _____ a loop, or a loop
36. Java UI toolkit
37. The first thing you see after you die?
38. Removes whitespace
39. Institute which invented the mouse
40. Lead-in to at work or without hats
42. Librarians' org.
43. Count (on)
44. Raw material
45. Grosse _____, MI
46. Kind of pointer in 16-bit Windows
47. Like most programmers?
50. Director Tim
52. A dozen dozen
53. Tech book publisher
56. You need one to teach computer science
57. Mexican river?
59. Internal compiler data structure
60. Match, in poker
61. Delphi source code file extension
62. Soldier's dinner (abbr.)
63. Conduct a background check
64. Joomla, for example
Sorry, no bio is available
View complete profile here.
Please login to rate or to leave a comment.