Skip to the content

Kazu数

Generate checked Sudoku and logic puzzles, read native rules and hints, and draw or embed playable boards.

Kazu is the Japanese word 数 for number. About the name

Contents

Reference · Number-puzzle engines

encodeJigsawfunction

A Jigsaw's givens: the cells, then the regions, one letter a cell. The regions ride in the givens because they are the puzzle: a check reads a finished grid against the regions it was handed, in one pass, and never has to make them again.

Import it

import { encodeJigsaw } from "@johnmorrisdotca/kazu";

Definition

function encodeJigsaw(cells: readonly number[], regions: readonly number[]): string

Parameters

NameTypeDescription
cellsreadonly number[]

Row-major numeric cells, or expected cell count for step logs as specified by the signature.

regionsreadonly number[]

The row-major region index of every cell.

Returns

string

A Jigsaw's givens: the cells, then the regions, one letter a cell. The regions ride in the givens because they are the puzzle: a check reads a finished grid against the regions it was handed, in one pass, and never has to make them again.

Examples

import type { KazuPuzzle } from "@johnmorrisdotca/kazu";
import { decodeJigsaw, encodeJigsaw, readGivens } from "@johnmorrisdotca/kazu";

const puzzle: KazuPuzzle = {"kind":"number-place","size":4,"level":"easy","seed":42,"givens":"14..2..1412.3..4","solution":"1432234141233214"};
const kind = puzzle.kind;
const size = puzzle.size;
const givens = puzzle.givens;
const printed = readGivens(kind,size,givens)!;
const cells = printed.cells;
const jigsaw = decodeJigsaw(".1.34....33..12...45423..bbaaacbaaecbeeecbddeccddd",5)!;
console.log(encodeJigsaw(jigsaw.cells,jigsaw.regions));
.1.34....33..12...45423..bbaaacbaaecbeeecbddeccddd

What it prints (run when this page was built)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/kazu 2.1.0.