Kirchhoff

Draw arrows along the edges between cells. A circled number is a source or a sink: it must send out, or take in, that many arrows more than it receives. Every other cell conserves, with as many arrows leaving as arriving. A plain number states that cell's throughput, the number of arrows entering it. At most one arrow per edge.

Every move you make is a counting argument about a boundary. Draw a line around some region, add up what the sources inside it must push out, and compare that with how many edges cross your line. If the two numbers are equal, every one of those edges is determined, direction included. That is Gale's theorem, and it is the rule the grade stamp calls “saturated cuts”.

The reason this board can do something the other three cannot: deciding whether a position is still winnable is a max-flow computation, not a search. Network constraint matrices are totally unimodular, so the fractional relaxation has integer corners and the flow you compute is the flow you can draw. That is what the HINT button rests on. Ask it, and it either finds a move that cannot be wrong or tells you the position is already lost.

Boards are built by routing paths between terminals, cluing every ordinary cell, then rubbing out throughput clues for as long as the solution stays unique. Feasibility being cheap moves all the expense to that last step: the hard question is never whether a board can be solved, only whether it can be solved twice.

CONSERVATION · UNIQUE SOLUTION

Kirchhoff

Draw arrows along the grid so that flow is conserved. A circled number is a source (+) or a sink (−) with that much to send or absorb. A plain number is throughput: how many arrows enter that cell, which is also how many leave. Every other cell takes in exactly as much as it gives out. Tap an edge to cycle through the two directions and back to nothing.

constructing a layout…