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

layoutOffunction

The layout and answer the lines leave: their ends as stones, lettered in reading order, with whatever else the board has — blocked cells, bridges (in two lines' paths, drawn +) and walls.

Import it

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

Definition

function layoutOf(size: number, paths: readonly number[][], extras?: LinkExtras): { layout: string; answer: string; }

Parameters

NameTypeDescription
sizenumber

The number of cells on each side of the board.

pathsreadonly number[][]

The complete grid-filling cell paths.

extras (optional)LinkExtras

Optional blocked cells and native twists.

Returns

{ layout: string; answer: string; }

The layout and answer the lines leave: their ends as stones, lettered in reading order, with whatever else the board has — blocked cells, bridges (in two lines' paths, drawn +) and walls.

Examples

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

const givens = TSUNAGI_4[0][0];
const answer = TSUNAGI_4[0][1];
const layout = decodeLayout(givens,4)!;
const solvedLines = linesOfAnswer(layout,answer)!;
console.log(layoutOf(4,solvedLines.map(line=>[...line])));
{ layout: 'A..AB..BC..CD..D', answer: 'AAAABBBBCCCCDDDD' }

What it prints (run when this page was built)

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