Reference · Number-puzzle engines
countKazuSolutionsfunction
How many answers a puzzle has, up to limit (two by default, so "many" costs no more than "two"):
1 is a puzzle, 0 is a grid that cannot be finished, 2 is a guessing game. Null, never a number,
for givens that are not a puzzle of this kind and side, and for a search that ran past budget
steps (Sudoku, Jigsaw, Diagonal and Sum Cages count steps; the other two have no budget): "I
could not say" is not "there are none".
Import it
import { countKazuSolutions } from "@johnmorrisdotca/kazu";
Definition
function countKazuSolutions(kind: KazuKind, size: number, givens: string, limit?: number, budget?: number): number | null
Parameters
| Name | Type | Description |
|---|---|---|
kind | "number-place" | "jigsaw" | "diagonal" | "sum-cages" | "more-or-less" | "towers" | The native number-grid puzzle key. |
size | number | The supported square grid side length. |
givens | string | The original native printed-clue code. |
limit (optional) | number | Stop after finding this many solutions. |
budget (optional) | number | The maximum bounded solver work. |
Returns
number | null
The bounded answer count, or null for invalid kind, size or givens; a budget-limited count alone does not prove uniqueness.
Examples
import type { KazuPuzzle } from "@johnmorrisdotca/kazu";
import { countKazuSolutions } 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;
console.log(countKazuSolutions(kind,size,givens,2,20000));1What it prints (run when this page was built)