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

CHALLENGESconstant

WHAT A TSUNAGI LEVEL ASKS OF A PLAYER, read from its board: the challenges on it, where it sits in its block's lesson, and how hard it measured. John, 2026-09-26: "at the bottom of every map, show the obstacles or difficulty level in one row… so the user can see that the level they are on has certain challenges", and of the block's last two: "users should know that the ninth [now 15th] would be a sort of experience and the 10th [16th] is the hardest".

Imports carry their .ts so the level script can read the same rules.

Import it

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

Definition

const CHALLENGES: readonly Challenge[] = ["bridges", "walls", "waypoints", "wrap", "portals", "explosions", "strokes", "hexagon", "sparse"]

Examples

import { CHALLENGES } from "@johnmorrisdotca/tsunagi";
console.log(CHALLENGES);
[
  'bridges',   'walls',
  'waypoints', 'wrap',
  'portals',   'explosions',
  'strokes',   'hexagon',
  'sparse'
]

What it prints (run when this page was built)

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