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

KazuGivenstype

WHAT A PUZZLE WAS PRINTED WITH, read from its givens code: the printed cells, and for a Jigsaw its regions, for Sum Cages its cages, for More or Less its marks, for Towers its clues. Each kind writes them after the cells. The drawing, the play and the hint all read a puzzle through this.

Import it

import type { KazuGivens } from "@johnmorrisdotca/kazu";

Definition

type KazuGivens = {
    kind: KazuKind;
    size: number;
    cells: number[];
    regions: number[] | null;
    diagonals: boolean;
    cages: Cage[] | null;
    marks: Mark[];
    clues: TowerClues | null;
};

Members

NameTypeDescription
kind"number-place" | "jigsaw" | "diagonal" | "sum-cages" | "more-or-less" | "towers"
sizenumber
cellsnumber[]

The printed numbers, row-major; 0 where nothing is printed.

regionsnumber[] | null

The region each cell is drawn in (a box, or a Jigsaw's own region), which the heavy rules go round; null for More or Less and Towers.

diagonalsboolean

Whether the two long diagonals are groups too (Diagonal).

cagesCage[] | null

Sum Cages: the cages and their sums.

marksMark[]

More or Less: which of two neighbouring cells is bigger.

cluesTowerClues | null

Towers: the clues round the edge.

Examples

import type { KazuGivens, KazuPuzzle } from "@johnmorrisdotca/kazu";
import { 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 value: KazuGivens = printed;
console.log(value);
{
  kind: 'number-place',
  size: 4,
  regions: [
    0, 0, 1, 1, 0, 0,
    1, 1, 2, 2, 3, 3,
    2, 2, 3, 3
  ],
  diagonals: false,
  cages: null,
  marks: [],
  clues: null,
  cells: [
    1, 4, 0, 0, 2, 0,
    0, 1, 4, 1, 2, 0,
    3, 0, 0, 4
  ]
}

What it prints (run when this page was built)

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