Reference · Rules, solvers and generation
repairedCandidatefunction
One candidate level made by MENDING rather than by luck, for boards too big
for luck (12×12): a filling whose layout has a second answer is mended where
the two answers differ — the line through a cell they disagree on is cut in
two there, which adds a pair of stones the second answer cannot honour — and
solved again, until it has exactly one answer, its own. The classic
Numberlink generator's move; in the 2026-09-26 spike it took 0.4 rounds on
average at 12×12 and doubled what luck alone made. Null when the solver
gives up, the lines pass most, or no cut can be made.
Import it
import { repairedCandidate } from "@johnmorrisdotca/tsunagi";
Definition
function repairedCandidate(size: number, random: Random, longest: number, budget: number, most: number): LinkCandidate | null
Parameters
| Name | Type | Description |
|---|---|---|
size | number | The number of cells on each side of the board. |
random | Random | A reproducible random source returning values in [0,1). |
longest | number | The maximum desired path length in cells. |
budget | number | The maximum search-work budget; exhaustion must be treated as inconclusive. |
most | number | The maximum repairs, waypoints or pairs specified by this signature. |
Returns
LinkCandidate | null
A proved unique candidate, or null when the bounded repairs/search fail.
Examples
import { repairedCandidate, seededRandom } from "@johnmorrisdotca/tsunagi";
console.log(repairedCandidate(4,seededRandom(42),8,20000,3));