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

How-to

Daily levels, blocks and assistance

Pick a daily level by UTC date, follow the 16-level blocks, and record assistance correctly.

Choose the same UTC day

import {dailyTsunagiLevel,tsunagiDay,blockOf,tsunagiMarks} from "@johnmorrisdotca/tsunagi";
const day = tsunagiDay("2026-10-12");
const level = dailyTsunagiLevel(4,day);
console.log(day,level,level === null ? null : blockOf(level));
console.log(level === null ? null : tsunagiMarks(4,level));
2026-10-12 19 2
1

Daily levels are fixed boards selected from the classic count, not random regenerated puzzles. The same size/date chooses the same board worldwide. dailyTsunagiLevel returns null for an unsupported size. Keep a historic date as YYYY-MM-DD when sharing a fixed daily challenge.

Read native progression

The ladder uses blocks of sixteen. A block opens after the preceding block is completed, and firstUnsolvedTsunagiLevel chooses the first gap. The 15th/16th can teach/test twists. tsunagiMarks and tsunagiRole read metadata without loading answers.

Record assistance honestly

TsunagiHelp distinguishes cheated, explosions-soft and explosions-off. strongestTsunagiHelp combines these when recording multiple solves; helpOpensNext answers whether assistance counts for progression. Check flags unfinished pairs rather than solving a line. Cheat requires its native option and a known answer. Do not erase assistance when storing progress.

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