Number Fill-In: how to solve number crossings with logic — Guides and puzzles · Blupoli
Play nowOpen Number Fill-In in Blupoli Puzzles.

The list already contains every answer

The central idea of Number Fill-In is unusually clean: you never have to invent an entry. Every number needed by the grid appears in the list beside it. A five-cell slot must contain one of the five-digit numbers. A seven-cell slot can ignore every three-, four-, five- and six-digit entry immediately. Length gives you the first filter before you inspect a single crossing.

Crossings supply the next filter. When an across slot and a down slot share a cell, they must place the same digit there. If the across entry fixes a 6 at the intersection, any candidate for the down entry that has something other than 6 in that position is impossible. One confirmed digit can turn six candidates into two, or two candidates into one.

The final rule makes the puzzle global rather than merely local: each listed number is used exactly once. Placing a candidate does two jobs at once. It fills a slot and removes that candidate from every other slot of the same length. The list is therefore an inventory, not just a reference sheet.

The digits behave like symbols, not quantities

A page full of numbers makes arithmetic feel inevitable, but Number Fill-In asks for none. The value 73142 is not interesting because it is seventy-three thousand one hundred and forty-two. It is interesting because it has five positions containing 7, 3, 1, 4 and 2. In this puzzle, a five-digit number behaves much like a five-letter word in a fill-in crossword.

Suppose a five-cell slot has already received a 3 in its second position and an 8 in its fifth. You do not calculate anything. You scan the five-digit list for the pattern “_ 3 _ _ 8”. Candidates with a different second or fifth digit disappear. If exactly one survives, the placement is forced.

That is why the puzzle travels well across languages. Its information is visible rather than semantic: length, position, repetition, availability and intersections. Harder boards can become genuinely demanding without requiring vocabulary, cultural knowledge or mathematical formulas.

Start with the smallest candidate group

A useful first move is to read the list before the grid. Count how many entries exist at each length. Perhaps there are nine four-digit numbers but only two seven-digit numbers. Perhaps one length occurs only once. A unique seven-digit entry and a unique seven-cell slot form an immediate placement, even if the board itself has no digits yet.

Small groups remain valuable when they contain two or three entries. A long number often crosses several other slots, so resolving it can seed the board with multiple digits at once. Those new digits can collapse much larger candidate groups that initially looked unmanageable.

The broader principle is simple: work where the uncertainty is smallest. Early in the puzzle that often means the rarest length. Later it means the open slot with the fewest compatible candidates.

A single placement can create several clues

Imagine placing 462 across. Its 4 may intersect one down slot, its 6 another and its 2 a third. You have made one decision, but the board may have gained three new constraints. If one of those down slots already held another crossing digit, it might now have only one legal candidate.

This is why some forced moves are more useful than others. If two slots are both solved logically, filling the one that touches more unresolved structure can make the next round of deductions easier to see. You are not changing the truth of the puzzle; you are choosing an order that exposes more information.

Eventually the board stops looking like isolated boxes. It becomes a graph: slots are nodes and crossings are links carrying digits between them. Solving means introducing information into that graph and watching possibility sets shrink.

Three visual steps show choosing by number length, matching a crossing digit, and crossing a used number off the list
The basic loop is length, crossing, and one-time use. Three simple constraints reinforce one another.

Read positions instead of rereading whole numbers

Long candidate lists become tiring if you compare every entry as a complete string. A more efficient habit is to read known positions. If a six-cell slot currently has the pattern “_ 3 _ _ 7 _”, look only for six-digit candidates with a 3 in position two and a 7 in position five. Most of the list may vanish before you care about the other four digits.

Unusual digits are especially strong filters. If only one five-digit candidate contains a 9 in its third position and a crossing fixes 9 there, the slot is solved instantly. Nothing about the other four cells matters yet.

The same positional thinking reveals contradictions. A slot whose visible pattern is matched by no unused number is already dead. The mistake may have happened several moves ago, but the current board is telling you that continuing forward cannot work.

The candidate list changes even when the text does not

At the beginning, two entries of the same length may appear interchangeable. Several moves later, one might be the only number that can satisfy a particular pair of crossing digits. The printed list has not changed, yet its logical meaning has changed because some numbers are used and some positions are constrained.

Return to a length group after any important placement. Four candidates may have become three because one was consumed elsewhere. A previously broad slot may now accept only one of those three. The useful information is not just what is written on the list but what remains available in the current state.

That makes Number Fill-In different from a conventional crossword in a subtle way. A crossword clue points outward toward knowledge. Here the complete answer set is already on the page. The work is assignment under constraints.

“Use each number once” is a global rule

Crossings connect nearby slots. One-time use can connect slots that never touch. A candidate placed in the top-left corner cannot also fill a compatible slot at the bottom-right. That exclusion travels across the entire grid.

Harder positions sometimes produce a useful pair: two open slots both accept exactly the same two candidates. You may not know which candidate goes in which slot, but you do know those two entries are reserved for that pair. A third slot of the same length must use something else. This is the fill-in equivalent of a locked pair.

You do not need formal notation to benefit from the idea. Keeping the remaining list visible is often enough. On Expert, however, explicitly thinking in small candidate sets can reveal deductions that no individual crossing exposes.

How selecting a crossing works

On paper, the direction of a slot is obvious from where you write. A touchscreen needs an interaction rule. In Blupoli, tapping a white cell selects the slot that runs through it. If the cell belongs to both an across and a down slot, tapping the same intersection again switches to the other direction. The highlighted run shows which slot is active before you choose a number.

A cell that belongs to only one slot has no ambiguity, so it selects that slot immediately. The intent is to keep attention on the grid rather than make you hunt for a separate orientation control.

Keyboard play follows the same structure. Arrow keys move focus through open cells, while Backspace or Delete removes the number from the selected slot. Focus remains visible, and the board exposes grid semantics for assistive technology.

Hide incompatible candidates without revealing the answer

The Hide incompatible option performs a deliberately limited kind of help. It looks at the selected slot, the digits that your current placements already fix, and the unused entries of the correct length. A candidate that conflicts with a known crossing cannot legally go there, so it can be hidden.

No answer key is required for that calculation. The filter applies exactly the same local rule a player would apply by eye. It saves repetitive comparison work but does not decide among several candidates that all fit the visible pattern. If three entries remain compatible, you still have three entries to reason about.

With the filter off, the full length group stays visible. Trying a candidate that directly contradicts an existing crossing does not alter the puzzle; the slot flashes as invalid and the attempt counter increases. You can choose a streamlined interface or a paper-like view without changing the underlying rules.

Highlight dead ends to detect a contradiction early

The Highlight dead ends option asks a different question: does at least one unused candidate still fit each empty slot? If an open slot has zero compatible numbers, the board marks it. Again, that test does not compare your placements with the saved solution. It only evaluates what your current state has made possible.

A dead slot can appear far away from the decision that caused it. You may place a number that matches every currently visible crossing, yet that number might have been the only remaining candidate for another slot. The first placement is locally legal but globally wrong. The contradiction becomes visible only when the other slot loses its last option.

That makes dead-end highlighting diagnostic rather than prescriptive. It tells you that the current branch cannot be completed. It does not tell you which previous move to undo.

Hints are intentionally stronger

A direct hint is allowed to do more. Blupoli first checks for a dead slot and points to it if one exists. Otherwise it chooses the unfilled slot with the fewest compatible candidates and briefly highlights one entry from the validated solution.

Selecting the most constrained slot mirrors the internal solver. It also makes sense for people: comparing two candidates is usually more productive than comparing eight. A hint therefore points toward a useful reasoning frontier rather than an arbitrary empty area.

After using it, try to reconstruct why the suggested candidate works. Was it the only entry with a particular digit? Had another candidate already been used? Did two crossings combine to make the choice unique? Turning the highlighted answer into an explanation is the fastest way to need fewer hints later.

A small chain of deductions

Suppose three four-digit numbers remain: 2738, 6194 and 6324. An across slot shows “6 _ _ 4” because two intersections are already known. That immediately removes 2738. If the third cell crosses a confirmed 9, 6324 disappears as well, leaving 6194.

Place 6194 and its second digit, 1, may enter a five-cell down slot that previously had three candidates. Two contain 7 at that position and only one contains 1, so the down slot becomes forced. That placement creates another crossing, and a chain begins.

No step required understanding the whole board at once. Each used a small, checkable constraint. The depth of Number Fill-In comes from how many of those local facts can propagate through the network.

When Undo is the right tool

Not every position is locally forced. Sometimes two candidates remain indistinguishable until information arrives from elsewhere. Sometimes you commit too early and encounter a dead end later. Undo is a natural part of exploring those states.

Blupoli keeps a placement history, so you can move backward and forward without reconstructing the candidate list from memory. That is useful when testing a genuine hypothesis: try one candidate, observe which possibilities survive, undo, then inspect the alternative.

The goal is not to replace deduction with random trial. A good experiment starts with a question. “If this entry goes here, does the other five-digit slot still have a candidate?” The history controls let you inspect the consequence cleanly.

Four sizes change how much network you manage

Blupoli currently offers 7×7, 9×9, 11×11 and 13×13 boards. Size primarily changes the amount of structure you must hold in view. A 7×7 board is compact enough that most length groups feel immediately readable. A 13×13 board contains more slots, more crossings and more reasons to revisit a region you have not touched for several minutes.

The patterns are not featureless open squares. Blocks split selected rows and columns into entries of different lengths, while every white cell belongs to at least one valid slot of three or more digits. Crossings keep the overall network connected enough for information to travel.

Size does not dictate difficulty. A 13×13 Easy game can be long but direct; a 7×7 Expert game can be compact but ambiguous.

Four difficulties are not just four board sizes

One of the easiest mistakes in procedural puzzle design is to call a larger board “harder” and stop there. Number Fill-In separates scale from reasoning difficulty. Within the same board size, the generator changes how similar the candidate patterns are and then measures the resulting ambiguity with the solver.

Easy generation uses a broad digit alphabet, so crossings often distinguish entries quickly. Higher levels deliberately use fewer different digits. More candidates share the same digits in the same positions, which means a single crossing eliminates less and several constraints must be combined.

The generator does not accept a board merely because it looks busy. The solver records how much branching was required and the selection process aims for increasingly ambiguous profiles from Easy through Expert at each size. The metric is not a perfect model of human difficulty, but it prevents “difficulty” from being a cosmetic label.

How Blupoli builds a Number Fill-In puzzle

Generation starts with a grid pattern for the chosen size. The engine automatically extracts every across and down run of at least three cells. It then fills the open network with digits according to the difficulty profile. The candidate list is not generated separately: each listed number is exactly the sequence read from one slot of that filled grid.

If two slots produce the exact same number, the candidate is rejected. Duplicate strings would introduce unnecessary identity ambiguity about which copy is being consumed. The remaining entries are grouped by length and shuffled within each group so display order does not leak position.

Then the exact solver takes over. A candidate with zero solutions is rejected. A candidate with two solutions is rejected. Only a puzzle with exactly one complete assignment survives. The seed makes this process deterministic, so the same size, difficulty and seed reproduce the same accepted puzzle.

Why a unique solution matters here

Some puzzle families only need proof that at least one winning path exists. A fill-in benefits from a stronger guarantee. If two different arrangements of the same list could satisfy every crossing, a player might build a perfectly legal completed grid that differed from the constructor's preferred answer. Calling one of them wrong would be arbitrary.

Uniqueness removes that problem. If every slot is filled, every entry is used once and every crossing agrees, the completed state is the one complete assignment validated during generation.

It also keeps the distinction between assistance levels clean. Compatibility filtering can remain answer-independent, while a direct hint can safely point into a single validated solution rather than one of several equally valid alternatives.

The solver does not begin with a hidden placement map

To validate a puzzle, the solver receives the same essential problem a player sees: slots, entry lengths, candidate numbers and crossings. It does not begin by reading “entry X belongs in slot Y”. It builds possibilities from the constraints.

At each step it chooses an unfilled slot with the fewest legal candidates. A single candidate is a forced move. Multiple candidates create branches. If a branch produces an empty candidate set, the solver backtracks. When it reaches a complete assignment, it records the solution and keeps searching long enough to determine whether a second solution exists.

This independent process matters for testing. The generator proposes boards; the solver challenges them. UI code is not involved in deciding whether a puzzle is valid.

Measured difficulty is a guide, not a universal score

A solver branch count can tell us that one generated structure demands more search from this algorithm than another. It cannot tell us that a board with twelve branch choices is exactly twice as difficult for every human as one with six. People notice visual patterns, unusual digits and candidate relationships differently.

We therefore use the metric for ordering and quality control rather than as a public precision score. It is excellent at catching a clear design failure, such as Expert generating the same ambiguity as Easy on a fixed size. It is not a substitute for checking whether a board is readable and satisfying.

Automated proof and interface quality cover different risks. The solver prevents invalid or multiply solved content. Browser tests and responsive review prevent a logically perfect puzzle from becoming awkward to play.

Changing size and difficulty starts a clean puzzle

Both controls create a new instance under the selected configuration. A 7×7 state cannot sensibly be poured into an 11×11 pattern, and changing difficulty may alter both the generated digits and candidate relationships. The old assignments are therefore not carried across.

The seed forms part of the puzzle identity. A fixed test URL can reproduce a particular grid indefinitely. Normal “New game” actions create another seed and therefore another validated instance.

Reproducibility is particularly useful when a bug depends on content. A report can be reduced to one seed and replayed in unit tests and the browser rather than hoping a random generator happens to produce the same state again.

Desktop and mobile need different layouts

On a wide screen, grid and candidate list work naturally side by side. You can inspect a crossing and glance across to the relevant length group without losing your place. The candidate panel scrolls independently, so a long list does not make the whole page enormous.

On a phone, preserving two columns would make either the grid or the number buttons too narrow. The layout therefore stacks: the grid takes the available width and the candidate panel moves below it. Number buttons reorganize into two or three columns depending on space, with compact touch targets kept at least 44 pixels tall.

The puzzle itself does not rotate, regenerate or change rules when the layout changes. A seed has the same slots and entries at every viewport. Responsive behavior changes presentation only.

Persistence means the deduction survives the tab

An Expert 13×13 game can be long enough that finishing in one sitting should not be required. The engine saves seed, size, difficulty, assignments, history, counters and assistance preferences through the shared game-state capability supplied by Blupoli's host.

When you return, the deterministic puzzle is regenerated from the same identity and the saved snapshot is checked against its slots and entries before being restored. An incompatible or stale snapshot is not forced onto a different puzzle.

The engine itself does not write directly to browser storage. That keeps persistence behind the same platform boundary used by other Blupoli Puzzles games and leaves room for future account sync without rewriting the puzzle rules.

Accessibility means making the state understandable

Every open cell is an actual control with row, column, content and slot-direction information. The board exposes grid semantics, the active run is marked as selected, and the number list uses buttons rather than generic clickable containers. Keyboard focus remains visible.

Color distinguishes selection, hints and dead ends, but the experience does not depend on color alone. Used entries have a separate state, controls are labeled, and status messages describe invalid attempts or completion. Motion used for a brief error signal is disabled when reduced motion is requested.

For a logic puzzle, accessibility is also cognitive clarity. A player should be able to tell which run is selected, which entries are unavailable and why an action failed without reverse-engineering decorative effects.

Three achievements stay inside the puzzle's own rules

The special achievements do not bolt unrelated chores onto the game. Clean Crossings rewards a solve without attempting an incompatible entry. No Hints asks for a solve without the direct hint action. Expert Cross is awarded for completing an Expert puzzle.

The first two encourage different habits. Avoiding incompatible attempts rewards checking visible constraints before acting. Avoiding hints rewards finding the next constrained slot yourself. The Expert achievement simply invites you into the most ambiguous generation profile.

They are optional challenges, not the “correct” way to learn. Assistance is there to be used. A better progression is to understand what each tool does, then decide when removing it makes the puzzle more interesting for you.

From Kriss Kross to numbers

Number Fill-In belongs to a wider family of list-based fill-in puzzles. Puzzler's Kriss Kross guide describes a clue-free word format also known as Criss-Cross, Grid Work and Jig-Word: a supplied list must be fitted into an interlocking grid by length and crossing letters. Puzzler documents the format in its first issue in November 1972, where it appeared under the name jig-word.

That gives us a solid piece of magazine history, but it does not establish an absolute invention date or a single inventor for the fill-in form. We would rather preserve that uncertainty than turn one publisher's documented use into an unsupported origin story.

Modern number versions apply the same structure without language. Educational resources such as Math = Love and Math Salamanders describe grids where a supplied set of numbers is placed once each by using lengths and crossing digits. The underlying mechanism has moved from printed puzzle books and worksheets to screens without needing to change its core rules.

What we learned from the reference, and what we did not copy

We used the public PuzzleShip Number Fill-In page to confirm the basic mechanic: numbers grouped by digit count, one-time use, slot selection and matching crossing digits. Its assistance ideas also demonstrated two sensible categories of non-destructive help: filter candidates that already conflict, and flag a slot that has no remaining candidate.

Those are rules and interaction concepts, not an implementation. Blupoli does not reuse PuzzleShip's daily grids, generator, code, text or visual design. Our patterns, seeds, candidate construction, exact solver, difficulty selection, UI copy, styles and tests live independently in the Blupoli repository.

That distinction is especially important for procedural content. Copying a set of puzzles would provide content for a while. Building a generator plus an independent validator creates a system that can keep producing verified games across sizes and difficulties.

What Number Fill-In shares with Kakuro

Kakuro also uses a blocked grid and intersecting numeric runs, but information enters the network differently. Kakuro gives a sum for each run and asks you to determine its digits. Number Fill-In gives complete candidate strings and asks you to assign them.

Both reward the habit of viewing one cell as part of two simultaneous constraints. A digit does not belong only to an across run; it also restricts a down run. If you enjoy watching one local decision ripple across a grid, Kakuro is a natural neighbor.

Number Fill-In removes the arithmetic layer, leaving candidate pattern recognition as the main task.

What it shares with Math Crossword

Math Crossword looks even closer to a numeric crossword, but its entries are derived from mathematical relationships. Number Fill-In exposes every complete entry at the start and makes placement the mystery.

Switching between them highlights two different reasoning modes. Math Crossword asks, “what value belongs here?” Number Fill-In asks, “which of these known values can belong here?” Crossings transmit information in both, but the source of that information is different.

If the grid geometry is the part you love most, Number Fill-In is the purer version. If you want crossings plus calculation, Math Crossword adds that extra layer.

What it shares with Number Match

Number Match also uses digits without heavy arithmetic, yet its board develops in the opposite direction. You remove compatible pairs and the empty space changes future connections. Number Fill-In gradually adds digits and reduces future uncertainty.

One puzzle finds structure by emptying; the other finds structure by filling. In both, position matters as much as value. A digit by itself does not tell the story; where it sits determines what it can constrain or connect.

If that spatial side of numbers appeals to you, the Number Match guide explores how empty cells become paths.

A practical routine for Easy

Begin by counting the length groups. Place any entry whose length has only one possible slot, or any slot whose length has only one candidate. Then inspect the runs that received the most crossing digits. Filter by known positions. Place a forced candidate and repeat.

Do not try to finish one region simply because you started there. Let information pull you around the board. A border entry can resolve a central down slot, which can then resolve another edge. Following the most constrained run is usually more efficient than staring at a place that does not yet contain enough information.

If two candidates remain tied, leave them. Easy is designed so broader digit variety tends to create distinguishing crossings soon. There is no need to guess while the grid still has other deductions to offer.

A practical routine for Medium and Hard

As candidates become more similar, individual crossings do less work. Start noticing small sets. If two slots both accept exactly A or B, those two candidates are effectively reserved for those slots. Another slot of the same length must use something else.

Look for discriminating positions rather than entire numbers. Two six-digit candidates may share four digits but differ exactly where a nearly solved crossing lands. That single position matters more than the rest of the string.

Keep checking the inventory too. A number can fit the visible digits and still be unavailable because another slot already used it. The global rule becomes increasingly important as local patterns become less distinctive.

A practical routine for Expert

Expert deliberately uses a much smaller range of digits, so accidental matches are common. A crossing that fixes 2 may eliminate almost nothing. You need to combine several crossings, one-time use and candidate-set relationships before a slot becomes forced.

Work in regions, but abandon a region when every open slot remains broad. Move to the length group that has lost the most entries elsewhere. An assignment on the opposite side of the grid can turn a four-way tie into a unique candidate without changing any crossing in the area you were watching.

Dead-end highlighting becomes especially educational here. A locally compatible hypothesis may consume a number needed somewhere else. When that remote slot goes dead, the board has exposed a global dependency that was invisible at the original move.

Why the contradiction may be far from the mistake

Suppose you place a candidate and every currently visible crossing agrees. Nothing about the move is immediately illegal. But that candidate may have been the only remaining entry for another slot. When you reach the second slot later, its candidate set is empty.

This explains why an incompatibility filter cannot guarantee that every legal click is part of the final solution. It checks constraints that are already visible, not consequences that require future assignments. A puzzle with only immediate checks would have very little depth.

The useful lesson is to distinguish “compatible now” from “globally safe”. The first is easy to test. The second is what the puzzle asks you to deduce.

Why reproducible seeds matter

Players rarely need to think about seeds, but development does. If one generated puzzle exposes an awkward layout, a surprising difficulty profile or a subtle interaction bug, its seed lets us reproduce the exact board instead of waiting for randomness to recreate it.

Our browser tests use fixed seeds for this reason. They solve a real generated 7×7 puzzle through actual clicks, reload to verify persistence and Undo, and inspect both mobile and desktop layouts. A failing test therefore points to a repeatable state.

Unit tests separately run the generator and solver across the size-and-difficulty matrix, checking deterministic output, unique solutions, slot coverage and increasing ambiguity. The two layers protect different things: puzzle mathematics and browser behavior.

What a correct finish means

The game is complete when every slot has an entry, every entry has been used once, and all shared digits agree. The engine validates that state as a constraint solution; it does not simply count filled cells or assume that a visually full grid must be correct.

Because published puzzles are unique, a complete legal grid corresponds to the one assignment certified during generation. Completion is then reported through Blupoli's shared result system with moves, hints, incompatible attempts, size and difficulty.

The common host locks a restored completed board so an accidental post-finish click cannot alter a session that has already been recorded.

Five ideas to carry into your next game

If you remember only a short method, use this: start with the least populated length group; choose slots with the most known crossing digits; compare specific positions rather than whole strings; remember that used numbers leave the inventory; and when two candidates remain tied, look elsewhere for information before guessing.

On higher difficulty add one more principle: a move can be locally compatible and still make another region impossible. Think about the remaining candidate pool as well as visible crossings, and use Undo as an analysis tool rather than a punishment.

Number Fill-In is easy to explain because its rule set is tiny. It stays interesting because those few rules overlap. The list gives you every piece. The puzzle is discovering the single arrangement that makes the entire network agree.

Number Fill-In is now playable in Blupoli Puzzles

Number Fill-In arrives with four board sizes, four independent difficulty levels, resumable games, history, direct hints, candidate filtering, dead-end detection, and touch, mouse and keyboard support. Every new grid is generated inside Blupoli and validated by the exact solver before it becomes a playable instance.

If this is your first fill-in, start with 7×7 Easy and spend the first few games learning to scan the list by length. Move to Medium when you begin finding entries by position without checking every number. Hard and Expert are best when candidate ties become the part you enjoy rather than something you merely tolerate.

And if you want another numeric constraint network afterwards, continue with Kakuro, Math Crossword, or Number Match. They share digits, but each asks you to see those digits in a different way.