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 · SVG board

drawTsunagifunction

A board as SVG text, with the lines in options.lines drawn on it. The drawing is class="tsunagi"; its colours and its two movements are TSUNAGI_STYLE. Its parts carry classes and data attributes a page can style or find: tsu-marble, tsu-bead, tsu-line (data-pair, data-cells), tsu-bridge (data-cell, data-across), tsu-over-bridge, tsu-wall (data-edge), tsu-waypoint, tsu-portal (data-portal, data-cells; its two rings are tsu-portal-end, its link tsu-portal-link), tsu-flag, tsu-blast, tsu-hex-cell.

Import it

import { drawTsunagi } from "@johnmorrisdotca/tsunagi/draw";

Definition

function drawTsunagi(layout: LinkLayout, options?: TsunagiDrawOptions): string

Parameters

NameTypeDescription
layoutLinkLayout

The decoded native board and its rule settings.

options (optional)TsunagiDrawOptions

Native drawing, geometry, game or mount settings.

Returns

string

A board as SVG text, with the lines in options.lines drawn on it. The drawing is class="tsunagi"; its colours and its two movements are TSUNAGI_STYLE. Its parts carry classes and data attributes a page can style or find: tsu-marble, tsu-bead, tsu-line (data-pair, data-cells), tsu-bridge (data-cell, data-across), tsu-over-bridge, tsu-wall (data-edge), tsu-waypoint, tsu-portal (data-portal, data-cells; its two rings are tsu-portal-end, its link tsu-portal-link), tsu-flag, tsu-blast, tsu-hex-cell.

Examples

import { TSUNAGI_4 } from "@johnmorrisdotca/tsunagi/levels-4";
import { decodeLayout } from "@johnmorrisdotca/tsunagi";
import { drawTsunagi } from "@johnmorrisdotca/tsunagi/draw";

const givens = TSUNAGI_4[0][0];
const layout = decodeLayout(givens,4)!;
console.log(drawTsunagi(layout,{marks:"numbers"}).startsWith("<svg"));
true

What it prints (run when this page was built)

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