Sashigane

Cut the board into carpenter's squares: two straight arms of width one meeting at a right angle, so the smallest piece is three cells. Every piece holds exactly one circle, on the bend, and exactly one arrow, on one of its two far ends, pointing back at the bend. A number inside a circle is that piece's cell count. Click a circle, then drag: the square reaches to your pointer's row and your pointer's column. Drawing over someone else's square takes those cells away from it.

the board

circle — the bend of a piece arrow — an end, pointing home your square proved — cells the selected rung can already assign

The blank board is not always solvable

Before any clue at all, ask how many ways an empty grid falls into L-shapes. On a one-cell-wide strip, none — an L needs two dimensions. On 2×2, none. And on 3×3, none: nine cells would have to split as 3+3+3 or 4+5, and neither can be done. It is the only square that fails, and it sits between 2×3, which works, and 3×4, which works twenty ways.

2×n0022261014264674126
3×n02020642346642220747625882
4×n0220110752452227380167078
5×n0264752772084846908020
6×n062344522848461557970

The strip has a linear recurrence — every term past the third obeys

a(n) = a(n−1) + 2·a(n−3)

which is OEIS A052537, with generating function (1−x)/(1−x−2x³). I have no bijective proof; the identity is re-checked against every computed term on every test run. None of the other rows, and not the square diagonal 0, 0, 0, 110, 7720, 1557970, returns anything from OEIS.

Print every number and the puzzle stops being one

The arrow does more than mark an end. It sits on an end and points home, so it fixes one whole arm outright: that arm runs in the reverse of the arrow's direction, and its length is the distance from the arrow to the bend. Add the number and the second arm's length is fixed too. All that is left is which of the two perpendicular sides the second arm falls on — so a fully clued circle has at most two shapes. Over 136,576 fully clued circles taken from every partition of 3×5, 4×4 and 4×5, 80.3% had exactly one and 19.7% had two. Never three.

And the tiling always picks between them. Cross every partition of a board with every one of the 2^k ways to place the arrows, print every number, and all 33,896 boards up to 4×5 have exactly one answer — as does every board in a random search up to 10×10. That is a measurement, not a theorem. It is also the reason this generator erases numbers: the interesting Sashigane board is the one with the numbers taken off.

Take the numbers away and the arrow end starts to matter

The same exhaustion with the circles left bare gives 87.5% unique on 3×4, 81.3% on 3×5, 73.5% on 3×6, 87.3% on 4×4 and 74.8% on 4×5. No answer is unprintable — every partition of every board here has at least one arrow placement that pins it — but a quarter of the choices are wrong, and the setter has to find a right one.

The arrow end is the only choice the setter has

Circles are forced onto the bends and the numbers get erased, so the only thing a setter really decides is which of a piece's two ends carries the arrow — a choice completely invisible in the answer. The same random answers, drawn three ways:

boardpiecesall on the long armall on the short armcoin flip
6×6median 657.9%49.8%49.9%
8×8median 941.8%44.8%30.4%
12×12median 1420.8%29.8%11.3%

1200, 1200 and 400 answers; the coin-flip column is eight independent masks per answer, so 9,600, 9,600 and 3,200 boards.

A consistent convention beats an inconsistent one every time. At 12×12 the short-arm convention pins the answer 29.8% of the time and a coin flip 11.3% — same answers, same circles, same number of arrows, differing only in which end each arrow went on. I have no mechanism for it: ambiguity is a property of the printed board alone and the solver never learns the convention, so all a convention can do is change which boards you land on. Apparently it lands on better ones. And which convention is better flips with size — long arm wins at 6×6 by eight points, short arm wins at 12×12 by nine.

The numbers really are nearly free

The generator prints every number, confirms the board is unique, then erases numbers one at a time and keeps every erasure that survives. Very little survives: the 8×8 boards here keep 0–2 numbers with a median of 0, and 22 of 40 are still unique with no number anywhere on the board. The 12×12 boards keep 0–4, median 1. The circles and the arrows are the puzzle.

The arrow's position is worth ten times its direction

Each clause switched off in turn, over all 72 shipped boards:

rule removedboards that stop being uniquebranch points
nothing0 / 720
the arrow points home5 / 7212
the arrow sits at an end52 / 721,006
the circle sits on the bend22 / 72146
a number equals the piece size40 / 72386

That is the opposite of how the rule reads. "An arrow at an end pointing at the circle" sounds like one clue whose content is the direction, with the position as the peg it hangs on. It is the other way round: knowing which cell is an end is nearly all of it. The last row is a self-check rather than a finding — the numbers were minimised, so every surviving number is load-bearing by construction.

What the ladder costs

Branch points needed to prove the answer unique, summed over the shipped boards:

fitcoverareaprobe
8×8, 40 boards4,053,280*000
12×12, 32 boards9,600,032*000

* five 8×8 boards and every 12×12 board hit a 300,000-branch cap, so those two figures are lower bounds. fit is pure exact cover with no propagation: it settles 94.4% of an 8×8 by construction and then needs millions of guesses for the rest. One rung buys the last 5.6% and all of the search.

The bug the second engine caught

The cover rung builds a table of how many of each circle's surviving shapes reach each cell, then sweeps the cells killing candidates. The first version kept sweeping on the table it had built before the kills. A stale count compared against a fresh survivor count reads as "every survivor of this circle covers this cell" when it no longer does, which evicts other circles from a cell they were entitled to and silently deletes real answers. The scanner said two answers where the propagator said one, on a board the generator had just produced. The rung now returns the moment it kills anything, so the caller rebuilds the table.