Skip to the content

Tsunagi繋ぎ

Join each pair with a separate line and fill the board, through fixed levels or seeded puzzles.

Tsunagi means joining in Japanese. About the name

Contents

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

NameTypeDescription
sizenumber

The number of cells on each side of the board.

randomRandom

A reproducible random source returning values in [0,1).

longestnumber

The maximum desired path length in cells.

budgetnumber

The maximum search-work budget; exhaustion must be treated as inconclusive.

mostnumber

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));

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/tsunagi 1.7.0.