Strategy

The No-Touching Rule Is Really Just a Column Gap

Every rules page for this game says the same thing: no two cats may occupy touching cells, not even diagonally, and each cat clears the eight squares around it. Read literally, that is an eight-neighbor check for every cat you place. The validator that actually blocks an illegal move never does that much work, because a Meowdoku board has a property that makes most of the eight neighbors irrelevant before you have looked at a single column.

The rule as it is written

No two cats may sit in touching cells. That includes the four cells sharing an edge with a cat and the four sharing only a corner, so a fresh cat rules out eight squares at once, on top of its row, its column and its region. Every guide on this site states the rule this way, because that is genuinely what it forbids.

The code that enforces it move by move looks exactly as blunt: place a cat, and the validator loops the eight offsets around it and rejects the move if any of them already holds a cat. That loop runs on every single placement, which is the part worth questioning. Eight cells is a lot to check when only some of them were ever in danger.

Why only one row can ever be in the way

Start from a fact that has nothing to do with touching: a board with N rows takes exactly N cats, and no row may hold two, so once the board is solved every row holds exactly one. That is just the row rule, stated the other way round.

Touching is a distance-one relationship: two cells touch only when both their row difference and their column difference are 0 or 1. Combine that with one cat per row and the reach of the rule collapses immediately. A cat in row 2 and a cat in row 5 are three rows apart, so no column pairing between them can ever touch — the row difference alone already clears the ±1 test. The only pairs of cats that can possibly touch are the ones sitting in neighboring rows.

The game’s own solver is written around exactly this shortcut. Its constraint module compresses a full solution down to one column number per row and states the reduction directly in its own comments: with one cat per row guaranteed, rule four degenerates to "adjacent rows' column numbers differ by ≥ 2" — nothing else to re-check.

Up, down, left and right are already spoken for

Of the eight neighboring cells around a cat, four sit directly above, below, left or right of it. Every one of those four shares either the cat’s row or its column — that is what makes them orthogonal rather than diagonal. The row rule and the column rule already forbid a second cat on any of them, so the touching rule is not the reason those four squares are illegal. It only agrees with a verdict two simpler rules already reached.

The four diagonal cells are the only place the touching rule can possibly be adding information the rest of the ruleset does not already supply, because a diagonal neighbor shares neither the cat’s row nor its column. So the entire practical content of "no touching" lives in four cells, not eight — and even those four are sometimes already dead for an unrelated reason: a diagonal cell can happen to sit in the same color region as the cat, which the region rule kills on its own.

How much of that is genuinely new

Across four hundred freshly generated boards per difficulty, here is what happens when you check, for every cat in the solved board, how many of its (up to four) diagonal neighbors were already illegal by row, column or region before the touching rule is even applied:

Diagonal cells around each solved cat: how many were already dead, and how many only die because of the touching rule.
BoardAlready dead by row, column or regionNew elimination from touching alone
Easy 5×537%63%
Normal 7×744%56%
Hard 9×947%53%
Extreme 10×1049%51%

On every difficulty, over a third of the touching rule’s apparent reach was never doing anything — the region rule had already made the call. What is left, the genuinely new eliminations, is still the majority of the diagonal cells, but it shrinks steadily as boards grow: from 63% on Easy down to about half on Extreme.

That trend tracks region size, not the touching rule itself. Regions get larger as boards grow — an Easy region averages five cells, an Extreme one averages ten — so a random diagonal neighbor is more likely to land inside the cat’s own region on a big board than a small one, and more of the touching rule’s work gets duplicated by the region rule before it is needed.

The gap, measured

The rule that survives all of that is one number: for every pair of neighboring rows in the solved board, the column gap between their two cats must be at least 2. A gap of 2 is the tightest value the rule allows — one column looser and the two cats would touch diagonally. Here is how often solved boards actually land on that minimum:

Column gap between cats in neighboring rows, across four hundred solved boards per difficulty.
BoardRows at the minimum legal gap (2)Mean column gapWidest possible gap
Easy 5×557.8%2.54
Normal 7×735.1%3.26
Hard 9×927.5%3.98
Extreme 10×1026.2%4.29

A gap of exactly 2 is the single most common outcome at every difficulty, ahead of every other individual gap value, even on the boards where it makes up barely a quarter of the rows. It is also, by definition, the value with no slack in it at all: nudge either cat one column closer and the board stops being legal.

Why small boards feel tighter

Easy is where the touching rule bites hardest, and the reason is just room. A 5×5 board has five columns to spread five cats across two neighboring rows, so a gap of 2 or 3 covers almost every legal pairing — the mean gap, 2.5, is barely above the minimum. A 10×10 board has twice as many columns and the same minimum gap of 2, so there is far more space for a pairing to land comfortably clear of it, and the mean climbs to 4.2.

The minimum itself never moves. A gap of 1 is diagonal contact on every board size, from 5×5 up. What changes is how often the board happens to land there, and that number falls steadily as the grid grows and the cats have more columns to be spread across.

What this buys you at the board

None of this changes what counts as a legal placement — it changes how much of the board you have to look at to check one. Skip the habit of scanning all eight neighbors of a new cat, and use these instead:

How this was measured

Both tables come from the game’s own generator, the same code that builds the boards you play, run across four hundred fresh boards at each of the four difficulties. "Already dead by row, column or region" means the diagonal cell shares the cat’s color region — sharing its row or column is not geometrically possible for a diagonal cell, so region is the only other rule that can beat touching to the same verdict. "Minimum legal gap" means a column difference of exactly 2 between the cats in two neighboring rows of the final solution.

These are properties of the boards this generator currently produces, and the generator has been retuned before. The test suite that ships with this article re-derives both tables from freshly generated boards on every run, so a future change to region sizing or column placement fails the build rather than leaving a stale statistic live on the page.

Try the gap rule on a real board

Start a Hard 9×9 and place two cats in neighboring rows without counting all eight neighbors of either one — just check the column gap between them. Anything at or above 2 is legal; exactly 2 is the tight case worth a second look, and it is the single most common gap in the finished board.

Boards are generated in your browser. Nothing about a game you play is sent anywhere.