100% free · no signupTip jar, opens Ko-fi in a new tab

How these are made

What is guaranteed about every sheet here, and how those guarantees are enforced.

Last updated

On a screen, a good puzzle generator and a careless one look the same. Both produce a grid of letters. The difference shows up on paper, in front of a child, when a word search turns out to contain a word nobody meant to put there, or a maze has two ways through, or a division drill produces a remainder halfway down the page.

This page is what this site guarantees instead, and how. Every rule below is enforced by a check that runs before the site is deployed, and each one is named as it appears in the test suite.

Word searches cannot spell something they should not

Once the real words are placed, the rest of the grid has to be filled with something. Fill it with random letters and, sooner or later, five of them line up into a word you would not want on a worksheet handed to a class. It is an obvious failure in hindsight and a common one in practice, because nobody reads a filled grid in all eight directions.

Every filler letter here is screened against a blocklist along all eight axes, and any run that matches is redrawn. The check is 250 grids contain no blocklisted sequence, run on every build.

Difficulty is a real constraint rather than a label: easy never runs a word backwards or upwards. If a word will not fit at the size you chose, it is reported back rather than quietly dropped, which is the check surfaces words it could not place.

Every maze has exactly one way through

A maze with a loop in it is not harder, it is broken: a child can follow a corridor back to where they started and reasonably conclude they made a mistake. A maze with an unreachable section is worse, because part of the page is dead.

Three checks hold this: every cell is reachable from the entrance, there are no loops, and shared walls agree between neighboring cells. A wrong turn always ends in a dead end, which is what makes backtracking a puzzle rather than a bug.

No two bingo cards in a set are the same

Printing thirty cards is pointless if two of them match, because two players win at once. The generator checks that no word repeats within a card, that there is exactly one free square per card, and that every word comes from the list you gave it.

It also knows what it cannot do. A five by five card with a free center needs 24 words. Give it fewer and it refuses rather than padding, which is the check rejects a list too short for the card. Give it exactly 24 and every card holds the same words in a different order, so it warns when every card would hold the same words, but does not block it. That is sometimes what you want for young children.

Math drills never produce an answer they should not

Subtraction sheets here never go below zero. Negative numbers are a later topic, and meeting one by accident on a practice page is confusing rather than instructive. The check is no negative answers across 6000 problems.

Division is generated backwards: the divisor and the answer are chosen first and the dividend is worked out from them, so a remainder is impossible rather than filtered out afterwards. Three checks cover it, including never divides by zero, even when zero is in range and every quotient is a whole number.

Every sudoku has one answer and an honest level

A sudoku with two solutions is broken in a way nobody sees until it is graded: the child’s grid is correct and so is the key, and they do not match. Every puzzle here is counted by a backtracking search that stops at two, separately from the program that made it, and the check is exactly one solution, followed by the one solution is the key.

The level is measured, not estimated from how many numbers are printed. A solver that works like a person, simplest step first and never guessing, has to agree with the label: easy falls to naked singles alone, medium needs a hidden single, and for hard, hard resists singles and hard needs no guessing. Those run on 2,250 fresh puzzles across the three sizes before every deploy.

Every word maze has one way through

A letter maze with a second route is wrong in a way nobody sees until a child takes it: the route spells the word, the key shows a different one, and the child is marked down for being right. So every route the word maze maker lays is checked by a search that tries every way from START that follows the letters without reusing a square, and the check is exactly one route, followed by the one route is the key. A separate search, written apart from the maker, repeats the count before every deploy on 1,344 fresh mazes across every grid, level and kind.

The levels are checked as well: easy never forks, and easy decoys avoid the message whenever the message leaves enough other letters to choose from. The squares that are not on the route are screened against the same list of rude words the word search filler uses, in all eight directions, and the check is no blocked word through a decoy.

Every crossword clue sits on its own answer

A crossword can be wrong in two ways a solver finds only halfway through: a clue that leads to an answer its squares do not hold, and a number that sends the solver to a square where nothing starts. So a separate program, written apart from the maker, reads every grid back square by square. It finds each run of two or more letters, numbers the squares that start one by the newspaper rule, and matches what it found against the printed clue lists: every run has a clue, as many runs as clues, numbers run without a gap, and every answer has to read back off the grid under the clue it was given.

The clue sets offered by theme are checked as well. No clue names another answer from its own set, so one clue never gives the next away, and every line of clue text has to fit its column at the size it prints. Those checks run on more than a thousand crosswords before every deploy, built from the clue sets, the ready-made sheets and deliberately awkward lists.

Every flash card lands on its own answer

A double-sided card is printed, turned over and cut, and turning a sheet over on its long edge swaps left and right. Printed in reading order, every back would land behind its neighbor, and nobody would find out until twenty cards had been cut. So the backs are printed mirrored, and the check does what a person would: it flips every page of backs, folds every fold-over page down its middle, and requires that the back of every card lands on its own front, at every size from two cards a page to nine, for every set on the site.

The cards on screen are laid out by the same code as the PDF and measured in the PDF’s own font, and the check the screen lays cards out in the box the PDF hands over renders a real page to hold it to that. The math sets are generated rather than typed, so a fact cannot be missing, and every answer on every times table and addition card is worked out again and compared before the cards are trusted.

Ruled paper is drawn at the size it claims

Printed graph paper is usually wrong, because it was drawn for the screen and then scaled to fit the page. Here, 5 mm squares measure 5 mm against a ruler when printed at 100%. Sheets that can be described two ways say both: isometric paper states the triangle edge as well as the line spacing, and hex paper states the width across as well as the side, because the trade quotes them both ways and the gap between the two is about 15%.

How darkly the grid prints is a setting, and it is deliberately only a setting: the check weight never moves a rule exists because an earlier version let the weight change the geometry, which meant the preview and the PDF could quietly disagree.

Primary writing paper is held to the line heights Zaner-Bloser handwriting paper is sold in, from 1 1/8 inch for pre-K down to 3/8 inch for third and fourth grade, and at every size the checks are midline exactly halfway and skip space is half a writing line. The tracing sheets print the same headline, midline and baseline, and the check is the traced midline is the blank paper midline, dash for dash; only the skip space under each of their lines is deeper, for the reason below.

Tracing letters are measured against the lines

The letters on the tracing sheets are not a font. Each one is drawn for this site as the strokes a child makes, in the order they are made, in upright ball-and-stick print, and a check reads every drawing back rather than trusting the numbers it was drawn with. Capitals and tall letters have to run from the headline to the baseline and short ones from the midline, and each tail of g, j, p, q and y has to hang half a writing line below the baseline, as deep as the skip space on blank paper and no deeper: hangs to the descender. On blank paper that depth just touches the next headline, but a tracing sheet prints start dots on its headlines, and stroke numbers and arrows above them, so its skip space is three quarters of a writing line, and every pair of neighboring lines, in every alphabet and number layout the maker can produce and in a class list holding every letter, at every size and setting, is checked for no line comes within 2 pt of the next. Every letter and number is checked for no letter starts on the baseline, and the circles of a, c, d, e, g, o and q for circle back turns counterclockwise, the way they are taught.

The dots have rules of their own. A traced stroke that stops a dot short teaches a child to stop short, so every stroke is checked for a dot at both ends of the stroke, and the arrows beside each model letter for arrows clear of the ink at every size that prints them. A typed name is drawn as strokes and never written into the file as words, which is asserted as a typed name is drawn, never written into the PDF as text.

The pre-writing lines and shapes are drawn and checked the same way. Every shape is one stroke that ends where it began, and each is checked for goes around counterclockwise, the direction of circle back, so the place a child learns to start a circle is the place to start the rest. Loops are counted by where the line crosses itself, each crossing itself once; the spiral is checked for the laps of the spiral stay apart, and the arrows beside each shape for no arrow inside the shape. The lines and shapes pages print no writing lines, and their rows are in the same sweep as the letters, held to the same 2 point gap between one row and the next.

Charts are computed, and their gaps are spread evenly

Every number on a multiplication chart or a hundreds chart is worked out when the chart is drawn, never typed in, so a 1 to 20 chart cannot carry a typo among its 400 products. The check every product is its row times its column runs over every range the maker offers, and the answer key is checked to be the filled chart, square for square.

A fill-in chart that leaves out a quarter of the squares at random does not scatter them. Every row gets the same number of gaps, give or take one, and each gap goes to the column that has had the fewest so far, so on a 1 to 12 chart every row and every column has exactly three. A plain random pick would leave some tables untested and others emptied, which is a worse sheet that looks just as random.

A place value key is checked by reading it back. The digits on a chart key are turned back into numbers by the column each was printed in, an expanded form key by adding up its terms, and a word form key by parsing the words, and each has to come back as the number the sheet asked about: every key reads back to its numbers. The words themselves are read back the same way for more than 20,000 random numbers, from one digit to twelve and up to thousandths, and every practice sheet is checked to carry at least two numbers with a zero inside them, the digit place value most often goes wrong on.

Every number on a dot to dot sits by its own dot

A connect the dots sheet goes wrong quietly. A number that sits nearer the wrong dot, or on the spot the child’s line has to cross, looks fine until a child is halfway round the picture. So every number is placed clear of the other numbers, of every dot, of the line the child will draw and of the lines printed for them, and every other dot has to be at least half as far again from it as its own. The check lays out every picture at every count the maker offers, in every way of counting, in both print sizes, and reports nothing wrong on any of them, measuring each sheet afresh rather than asking the placer. A count where a number would have nowhere to go is not offered, and the next count up fails holds the maker to that.

The pictures are the outlines the shaped mazes are carved inside, traced as a line, and the dots go first where an outline turns, so a star’s points and a heart’s cleft and tip are dots at every count. The answer key is checked to join every dot in order and close the line back to the first, and the puzzle page is checked to draw no line at all.

The preview and the download are the same puzzle

Every generator here is deterministic and explicitly seeded, so the same seed always produces the same puzzle. That is not a detail: the puzzle you see on the screen and the one in the PDF are generated from the same seed, so they cannot diverge. Without it, the download would be a different puzzle from the one you approved, which is a failure nobody notices until the sheets are already printed.

Each engine carries the same pair of checks, in the form same seed gives identical cards and a different seed gives different cards.

Where the themed word lists come from

The themed lists behind the word searches and bingo cards were drafted with the help of an AI assistant and then reviewed by hand, one list at a time. Saying so seems better than not saying so.

The review applies four rules. Every list holds at least 26 distinct words, so a bingo set can make genuinely different cards rather than the same words reshuffled. Nothing runs much past twelve letters, so words still fit a mid-size grid and a bingo square without shrinking to nothing. Everything is letters only, because the grids hold letters. And no list uses a trademarked name, because a themed sheet is not worth a takedown.

What is not claimed

These are engineering guarantees about the sheets, not claims about learning outcomes. Nothing here has been trialled in a classroom study, and any page on this site that talks about how children learn is describing common classroom practice rather than research.

There are also no download counts, ratings or testimonials anywhere on this site, because there is nothing true to report yet. When there is, it will be reported.

All of it runs on your machine

Every generator described above executes in your own browser. Nothing you type is uploaded or logged, and there is no server-side copy of anything made here; a typed list is kept between visits only if you ask a maker to remember it, and then only in your own browser. You can check that in about a minute: open any tool page, disconnect from the internet, and keep making puzzles.

More about the reasoning behind that in the privacy policy, and about the project itself on the about page. If a sheet ever prints wrong, tell us: hello@puzzleandprint.com.