# No forced moves

> The usual way to crack a logic puzzle is to find a spot where only one piece fits, place it, and repeat. That lever doesn't exist here: every interior piece has between 73 and 137 possible neighbours, and not one is ever pinned to a single option.

- Canonical page (with interactive figures/demos): https://eternity2.dev/research/why/no-forced-moves/
- Updated: 2026-07-01
- Topics: structure, search-space
- Reproduce: `just research-no-forced-moves`
- Source: No forced moves: article, source and results (GitHub) — https://github.com/raphael-anjou/eternity2/tree/main/research/topics/no-forced-moves

---
Bar,
  BarChart,
  CartesianGrid,
  ResponsiveContainer,
  Tooltip,
  XAxis,
  YAxis,
} from "recharts";

Every one of the 196 interior pieces has between 73 and 137 other pieces that
can legally sit to its right (counting right-hand partners, as the chart above
does). The typical piece has over a hundred options. Not a single piece is
ever pinned to one choice.

This is the flip side of forbidden patterns. There, almost every combination
of pieces is impossible. You'd think all those rules would corner pieces into
place. They don't: the constraints rule out combinations without ever
cornering an individual piece, so a solver never gets a free, forced move to
build on.

<div className="grid grid-cols-3 gap-3 text-center">
  <div className="rounded-lg border p-4">
    <div className="text-3xl font-bold tabular-nums">{data.forcedPieces}</div>
    <div className="mt-1 text-xs text-muted-foreground">pieces forced to a single option</div>
  </div>
  <div className="rounded-lg border p-4">
    <div className="text-3xl font-bold tabular-nums">{data.minPartners}–{data.maxPartners}</div>
    <div className="mt-1 text-xs text-muted-foreground">partners per piece (min to max)</div>
  </div>
  <div className="rounded-lg border p-4">
    <div className="text-3xl font-bold tabular-nums">{data.meanPartners}</div>
    <div className="mt-1 text-xs text-muted-foreground">average partners</div>
  </div>
</div>

## How many neighbours each piece allows

The 196 interior pieces, bucketed by how many right-hand neighbours each one
accepts. The whole distribution sits far from one.
> **[Interactive: PartnerHistogram]** Rendered on the canonical page (link above); not shown in this markdown export.
## See it on a real puzzle

The engine fills a few cells; then we count, live, how many pieces legally
fit the next one. It almost never drops to one.

> **[Figure]** Interactive: candidate counts, cell by cell — interactive: ForcedMovesLab. Rendered on the canonical page (link above); not shown in this markdown export.

## Why it matters

Put this beside forbidden patterns and the real shape of the difficulty
appears. Locally the puzzle looks loose: any piece fits next to plenty of
others, so there's nothing to propagate and no chain of forced moves to ride.
Globally almost every combination is illegal. The hardness lives in that gap:
lots of local freedom, almost no global consistency. A solver has to make a
long run of free-looking choices that only turn out wrong much later.

## Related

- [Why a faster computer doesn't help](https://eternity2.dev/research/why/prune-vs-speed) — The single most important idea in hard combinatorial search: shrinking the space you search beats searching it faster, by an exponential margin. Eternity II is engineered so you can barely shrink it at all.
- [Piece theft, where solvers die](https://eternity2.dev/research/why/piece-theft) — A solver fills a few rows for free, then hits a wall in the middle of the board. Here's the mechanism: a scarce piece spent in the wrong place, rows ago.
- [Tuned to the hardness peak](https://eternity2.dev/research/why/phase-transition) — Eternity II uses 22 colors. They split 17 interior to 5 frame-only, and that 17 is exactly where this kind of puzzle is hardest to solve.
- [Arc consistency, from AC-3 up](https://eternity2.dev/research/build/reduce/arc-consistency) — Forward checking looks one move ahead; arc consistency makes every cell's candidate list defend itself against every neighbour's, to a fixed point. Mackworth's AC-3, the optimal refinements that followed, and what the whole family actually measured on this puzzle, including where it is unsound.
