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

TsunagiProgresstype

What a game stands at: for a status line under the board.

Import it

import type { TsunagiProgress } from "@johnmorrisdotca/tsunagi";

Definition

type TsunagiProgress = {
    pairs: number;
    joined: number;
    filled: number;
    cells: number;
    strokesLeft: number | null;
    strokeLimit: number | null;
    boomIn: number | null;
    strokes: number;
    solved: boolean;
    outOfStrokes: boolean;
    helped: TsunagiHelp | null;
};

Members

NameTypeDescription
pairsnumber
joinednumber
fillednumber

Cells with a line through them, and cells there are to fill.

cellsnumber
strokesLeftnumber | null

Strokes left of a limit, or null for no limit.

strokeLimitnumber | null
boomInnumber | null

Strokes to the next explosion (1 means the next stroke), or null for a board without them.

strokesnumber
solvedboolean
outOfStrokesboolean
helpedTsunagiHelp | null

Examples

import { TSUNAGI_4 } from "@johnmorrisdotca/tsunagi/levels-4";
import { newTsunagiGame, tsunagiProgress } from "@johnmorrisdotca/tsunagi";
import type { TsunagiProgress } from "@johnmorrisdotca/tsunagi";

const givens = TSUNAGI_4[0][0];
const answer = TSUNAGI_4[0][1];
const game = newTsunagiGame(givens,4,{answer,cheats:true})!;
const value: TsunagiProgress = tsunagiProgress(game);
console.log(value);
{
  pairs: 4,
  joined: 0,
  filled: 8,
  cells: 16,
  strokesLeft: null,
  strokeLimit: null,
  boomIn: null,
  strokes: 0,
  solved: false,
  outOfStrokes: false,
  helped: null
}

What it prints (run when this page was built)

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