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

countSolutionsSatfunction

Counts a layout's answers by SAT, up to limit. budget is a number of conflicts; guide is the lines the layout was made from (cells in order, portal cells too); colours says how a cell's pair is written as variables, and the default is the way every level up to 15×15 was proved: another way writes another search, with other counts.

Import it

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

Definition

function countSolutionsSat(layout: LinkLayout, limit?: number, budget?: number, guide?: readonly (readonly number[])[] | null, colours?: SatColours): SolveCount

Parameters

NameTypeDescription
layoutLinkLayout

The decoded native board and its rule settings.

limit (optional)number

Stop after finding this many solutions.

budget (optional)number

The maximum search-work budget; exhaustion must be treated as inconclusive.

guide (optional)readonly (readonly number[])[] | null

Optional known answer lines guiding the SAT search; null without a guide.

colours (optional)SatColours

The palette or SAT colour encoding specified by the signature.

Returns

SolveCount

Counts a layout's answers by SAT, up to limit. budget is a number of conflicts; guide is the lines the layout was made from (cells in order, portal cells too); colours says how a cell's pair is written as variables, and the default is the way every level up to 15×15 was proved: another way writes another search, with other counts.

Examples

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

const givens = TSUNAGI_4[0][0];
const layout = decodeLayout(givens,4)!;
console.log(countSolutionsSat(layout,2,20000).count);
1

What it prints (run when this page was built)

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