For ten years now, I’ve been setting the Chalkdust crossnumber. Over this time, I’ve developed a lot of tricks and tools for setting good puzzles.
Although puzzles involving words in grids of squares have been around since at least the 1800s, the first crossword (or word-cross as the author called it) puzzle was published in the New York World newspaper in 1913. Since this, crosswords have become a staple in newspapers and magazines around the world.
In the UK, cryptic crosswords were invented and grew in popularity in the 1900s and now appear in most newspapers and magazines. The cryptic crossword in the Listener magazine became infamous as the hardest such puzzle. the Listener ceased publication in 1991, but the Listener crossword still lives on and is now published on Saturdays in the Times newspaper.


Fun’s word-cross puzzle, written by Arthur Wynne in 1913. Each clue gives the position of the first and last letters where the entry should be written. The puzzle features well-known words such as ‘neif’ and ‘nard’, and the solution includes ‘dove’ twice.
In early 2015, we were discussing ideas for regular content in our brand new maths magazine, and wanted to include a more mathematical crossword-style puzzle. Like Venus emerging from the shell, the crossnumber was born.
Of course, we didn’t invent the crossnumber puzzle: the first known crossnumber puzzle was written by Henry Dudeney and published by Strand Magazine in 1926; four times a year, the Listener features a numerical puzzle; and the UKMT (United Kingdom Mathematics Trust) have included a crossnumber as part of their team challenge for many years. There are also plenty of other publications that include crossnumbers, including the very enjoyable Crossnumbers Quarterly, that’s been publishing collections of the puzzles four times a year since 2016. But perhaps we’ll be mentioned in a footnote in a book about the history of puzzles.
But anyway, we’d decided we needed a crossnumber, so I needed to write one…
Making a grid
The first step when creating a puzzle is to create the grid. Like many publications, we restrict ourselves to using grids of squares (for the main crossnumber at least—we allow more freedom in other puzzles that we feature).

Grids with order 2 (left) and order 4 (right) rotational symmetry.
- The white squares must be simply connected (for any two white squares, it is possible to draw a path between them that only goes through white squares);
- The arrangement of black squares must be in some way symmetric;
- The proportion of squares that are black cannot be too high.

Grids with one, two, and four lines of symmetry.

The grid for crossnumber #14 experimented with translational symmetry.

The grid for crossnumber #11. Rotating this grid 90° leads to the same grid with inverted colours. This grid also has order 2 rotational symmetry.

The grid for crossnumber #6. Rotating this grid 180° leads to the same grid with inverted colours.

The grid for crossnumber #17 was not symmetric, and instead included all 18 pentominoes in black.
For American style crosswords, there’s an additional restriction that is imposed: all white squares must be checked. A white square is called ‘checked’ if it is part of an across entry and a down entry—and so you can fill that square in by solving one of two different clues. Due to this, American crosswords will have large rectangles composed entirely of white squares and never have lines of alternating black and white squares as commonly seen in British puzzles.


A valid American crossword (if two letter entries were allowed)


A valid British crossword that is not a valid American crossword
When writing a crossword, it is common to pick the words to include while making the grid, as trying to find valid words or phrases to fill a predetermined grid is a challenging task. (Thankfully, there’s software out there that can help you make grids from a list of words.) For crossnumbers, filling the grid is a much easier task as any string of digits not starting with a zero is a valid entry. This ease of filling the grid is what allowed us to use the interesting restriction-breaking grids mentioned in this section.
For crosswords, it is also common to disallow the use of two-letter words. For the crossnumber, removing two-digit numbers would remove the potential for a lot of fun number puzzles, so we don’t impose this restriction here. We allow two-letter words in the Chalkdust cryptic too, as they can be really useful when trying to make a grid with our additional restriction that the majority of the included words should be related to maths.
Setting the clues
Once I’ve made the grid for a crossnumber, the next task is to write the clues.
Often, I start this task by picking a fun mathematical or logic puzzle to include in the clues. Sometimes, this is a single clue, such as this one from crossnumber #1:
Down
- 6. This number’s first digit tells you how many 0s are in this number, the second digit how many 1s, the third digit how many 2s, and so on. (10)
Or this clue from crossnumber #5:
Across
- 9. A number $a$ such that the equation $3x^2+ax+75$ has a repeated root. (2)
Other times, this could be a set of clues that refer to each other and reveal enough information to work out what one of the entries should be, such as these clues from crossnumber #10:
Across
- 13. 49A reversed. (3)
- 37. The difference between 49A and 13A. (3)
- 47. 37A reversed. (3)
- 48. The sum of 47A and 37A. (4)
- 49. Each digit of this number (except the first) is (strictly) less than the previous digit. (3)
Once I’ve included a few sets of clues like this, it’s time to write the rest of the clues. As any crossnumber solvers will have noticed, my favourite type of clue to add from this point on is a clue that refers to another entry.
More recently, I’ve begun adding an additional mechanic to each crossnumber. This started in crossnumber #13, when all the clues involved two conditions which were joined by an and, or, xor, nand, nor or xnor connective. Mechanics in later puzzles have included the clues being given in a random order without clue numbers (#14), some clues being false (#16), and each clue being satisfied by both the entry and the entry reversed (#19). I really hope that you enjoy the ‘fun’ mechanic I used in this issue’s puzzle.
Around the same time as I started playing with additional mechanics, my taste in puzzles shifted. Older crossnumbers had been quite computational, and often needed some programming for a few of the clues, but more recently I have become a greater fan of logic puzzles and number puzzles that can be solved by hand. To reflect the change in the type of puzzle I was setting we added the phrase ‘but no programming should be necessary to solve the puzzle’ to the instructions, starting with crossnumber #14.
Thinking like a mega-pedant
One of the most important things to watch out from when writing and checking clues is accidental ambiguity due to writing maths in words.
For example, the clue ‘A factor of 6 more than 2D’ could be read in two ways: this could be asking the solver to add 6 to 2D, then find a factor of the result; or it could be asking the solver to add 1, 2, 3, or 6 (ie a factor of 6) to 2D.
As long as I spot clues like this, it can usually be fixed with some rewording. In this example, I’d rewrite the clues as either ‘2D plus a factor of 6.’ or ‘This number is a factor of the sum of 6 and 2D.’
In my time setting the crossnumber, I’ve got a lot better at spotting ambiguity in clues, and do this by reading through the clues and trying to be a mega-pedant and intentionally misinterpret them. It can be really helpful to get someone else to help with this check though, as remembering what you intended to mean when writing a clue can make it hard to read them critically.
Checking uniqueness
Perhaps the most difficult part of setting a crossnumber is checking that there is exactly one solution to the completed puzzle.
To help with this task, I’ve written a load of Python code to help me find all the solutions to the puzzle. I run this a lot while writing clues to make sure there’s no area of the puzzle where I’ve left multiple options for a digit. I intentionally use a lot of brute force in this code so that it’s really good at catching situations where there are multiple answers to a puzzle where I only found one solution by hand.
Once I’ve got all the clues and my code says the solution is unique, I do a full solve of the puzzle by hand. This is both to confirm that the code’s conclusion was not due to a bug, and to check that the difficulty of the puzzle is reasonable.
Following this checking, and a little proofreading, the puzzle is ready for publishing. Then the fun part begins, as I get to chill with a nice cup of tea and wait for people to submit their answers.