checkRoomSpansfunction
Add unshaded straight-line room-span violations to the supplied error set.
Import it
import { checkRoomSpans } from "@johnmorrisdotca/kazu/heyawake";
Also exported from: @johnmorrisdotca/kazu
Definition
function checkRoomSpans(board: HeyawakeBoard, entries: readonly (boolean | null)[], roomIds?: number[], errors?: Set<number>): void
Parameters
| Name | Type | Description |
|---|---|---|
board | HeyawakeBoard | The valid native board with its printed clues and dimensions. |
entries | readonly (boolean | null)[] | Current row-major entries; omit to search from printed clues. |
roomIds (optional) | number[] | Optional precomputed room index for each cell. |
errors (optional) | Set<number> | The set receiving cells violating room-span rules. |
Examples
import type { HeyawakeBoard, HeyawakePuzzle } from "@johnmorrisdotca/kazu/heyawake";
import { checkRoomSpans, roomForCell } from "@johnmorrisdotca/kazu/heyawake";
const heyawakeBoard: HeyawakeBoard = {"width":5,"height":5,"rooms":[{"x":0,"y":0,"width":1,"height":1,"blacks":0},{"x":0,"y":1,"width":1,"height":2,"blacks":0},{"x":0,"y":3,"width":1,"height":2,"blacks":1},{"x":1,"y":0,"width":1,"height":4,"blacks":1},{"x":1,"y":4,"width":1,"height":1,"blacks":0},{"x":2,"y":0,"width":3,"height":5,"blacks":3}]};
const heyawakeSolution: HeyawakePuzzle["solution"] = [false,false,true,false,false,false,true,false,false,false,false,false,true,false,false,true,false,false,false,false,false,false,true,false,false];
const errors = new Set<number>();
checkRoomSpans(heyawakeBoard,heyawakeSolution,roomForCell(heyawakeBoard),errors);
console.log([...errors]);[]What it prints (run when this page was built)