本文へ移動

Kazu数

検証済みの数独や論理パズルを作り、標準の規則とヒントを読み、盤を描いたり埋め込んだりできます。

「数」は数字を表す言葉です。 名前について(英語)

目次

リファレンス · 数字パズルのエンジン

encodeKiller関数

リファレンスの説明と例は英語です。見出しと目次は日本語です。

A Sum Cages puzzle's givens: the cells, then which cage each cell is in, then each cage's sum.

cells is size² characters as every number puzzle writes them (all empty, usually; a cage of one cell is its own given). cages is size² characters, one per cell, naming its cage from CAGE_LETTERS. sums is two base-36 characters a cage, in cage order. The cages ride in the givens because they are the puzzle.

インポート

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

定義

function encodeKiller(cells: readonly number[], cages: readonly Cage[]): string

引数

名前型説明
cellsreadonly number[]

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

cagesreadonly Cage[]

The cage cell lists and required sums.

戻り値

string

A Sum Cages puzzle's givens: the cells, then which cage each cell is in, then each cage's sum.

例

import type { KazuPuzzle } from "@johnmorrisdotca/kazu";
import { decodeKiller, encodeKiller, 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 killer = decodeKiller("2.....3..2................2...4.....012333412567882967aaa9bbccd9ebfgggee02050c0d03020309080e0c0a06020b040a",6)!;
console.log(encodeKiller(killer.cells,killer.cages));
2.....3..2................2...4.....012333412567882967aaa9bbccd9ebfgggee02050c0d03020309080e0c0a06020b040a

出力(このページを作ったときに実行した結果)

ソースを見るGitHub で編集@johnmorrisdotca/kazu 2.1.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。