StarBattle

Place the stars. Every row, every column and every outlined region needs exactly its quota, and no two stars may touch — not even at a corner. Click a cell to place a star, again for a × pencil-mark, once more to clear.

The solver is two layers. First a sound propagation pass runs two strict rules to a fixpoint. Every cell is a single bit — star or empty — and each of the 3n lines (n rows, n columns, n regions) is a count-exactly-k constraint: the moment a line's stars are all placed, its remaining cells are struck empty; the moment the only way to reach the count is to use every open cell, they are all stars. In parallel, a placed star empties its eight neighbours, and two stars that touch are an immediate contradiction. Neither step ever guesses. When logic stalls, a fewest-options search branches on a cell in the tightest still-open line, lets propagation prune, and counts solutions. Every bundled board is drawn as its own finished answer; the solver reads off the region shapes and re-derives that exact placement as the one and only solution — the test suite asserts each board stops at exactly one.