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

cheatLinefunction

CHEAT: one unfinished line drawn for the player, correctly. John, 2026-09-26: beyond Check, which only flashes the unjoined pairs, "a Cheat button that draws one unfinished line correctly", offered only where "Allow cheating" was chosen at set-up. Flow Free's hint does the same — it draws one whole flow.

The line is the lowest-numbered pair not yet joined; where every pair is joined but the board is wrong, the lowest whose line is not the answer's. It is drawn as the answer has it, and any other line in its way is cut back to before the first cell it would share — on a bridge only where both go the same way over it, since two lines may cross there. Null when there is nothing to draw: every line already the answer's. Pure: new lines, the old untouched.

Import it

import { cheatLine } from "@johnmorrisdotca/tsunagi";

Definition

function cheatLine(layout: LinkLayout, lines: Lines, answer: Lines): { lines: Lines; pair: number; } | null

Parameters

NameTypeDescription
layoutLinkLayout

The decoded native board and its rule settings.

linesLines

The native cell lists for every pair.

answerLines

The native complete answer string or solved lines specified by the signature.

Returns

{ lines: Lines; pair: number; } | null

The updated lines and helped pair, or null when every pair is already joined.

Examples

import { TSUNAGI_4 } from "@johnmorrisdotca/tsunagi/levels-4";
import { cheatLine, decodeLayout, linesOfAnswer, noLines } from "@johnmorrisdotca/tsunagi";

const givens = TSUNAGI_4[0][0];
const answer = TSUNAGI_4[0][1];
const layout = decodeLayout(givens,4)!;
const lines = noLines(layout);
const solvedLines = linesOfAnswer(layout,answer)!;
console.log(cheatLine(layout,lines,solvedLines));
{ lines: [ [ 0, 1, 2, 3 ], [], [], [] ], pair: 0 }

What it prints (run when this page was built)

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