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-grid SVG

KazuGeometrytype

WHERE EVERYTHING IS IN A DRAWING, so a page of your own can play it: the drawing is a square of side units, every cell cell units across, and a Towers square sits inside a ring one cell deep that holds its clues. Pure arithmetic, no page needed.

Import it

import type { KazuGeometry } from "@johnmorrisdotca/kazu/draw";

Definition

type KazuGeometry = {
    side: number;
    cell: number;
    origin: number;
    ring: number;
    size: number;
    corner: (index: number) => {
        x: number;
        y: number;
    };
    centre: (index: number) => {
        x: number;
        y: number;
    };
    cellAt: (x: number, y: number) => number;
};

Members

NameTypeDescription
sidenumber

The side of the drawing, in its own units (the viewBox is 0 0 side side).

cellnumber

The side of one cell.

originnumber

Where the grid's top left corner is.

ringnumber

How many cells deep the ring round the grid is: 1 for Towers, which keeps its clues there, 0 for the rest.

sizenumber
corner(index: number) => { x: number; y: number; }

The top left corner of a cell.

centre(index: number) => { x: number; y: number; }

The middle of a cell.

cellAt(x: number, y: number) => number

The cell a point is over, or -1 for a point outside the grid.

Examples

import type { KazuGeometry } from "@johnmorrisdotca/kazu/draw";
import { kazuGeometry } from "@johnmorrisdotca/kazu/draw";

const value: KazuGeometry = kazuGeometry("number-place",4);
console.log(value);
{
  side: 420,
  cell: 100,
  origin: 10,
  ring: 0,
  size: 4,
  corner: [Function: corner],
  centre: [Function: centre],
  cellAt: [Function: cellAt]
}

What it prints (run when this page was built)

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