Reference · Pipes, rules and solving
symmetryKeyfunction
A board's identity up to turning and mirroring it: the smallest of the codes of
its eight turns and mirrors, with every piece the water does not go through
(it may face any way) set to one facing. Two boards with the same key are the
same puzzle. solution is the board with its pieces facing as an answer has them.
Import it
import { symmetryKey } from "@johnmorrisdotca/suido";
Definition
function symmetryKey(layout: Layout, solution: readonly number[]): string
Parameters
| Name | Type | Description |
|---|---|---|
layout | Layout | The decoded board with its dimensions, pipe masks and rule settings. |
solution | readonly number[] | The solved pipe masks in row-major cell order. |
Returns
string
A board's identity up to turning and mirroring it: the smallest of the codes of its eight turns and mirrors, with every piece the water does not go through (it may face any way) set to one facing. Two boards with the same key are the same puzzle. solution is the board with its pieces facing as an answer has them.
Examples
import { SUIDO_5X5 } from "@johnmorrisdotca/suido/levels-5x5";
import { decodeLayout, symmetryKey } from "@johnmorrisdotca/suido";
import { levelSolution } from "@johnmorrisdotca/suido/levels";
const row = SUIDO_5X5[0];
const code = row[0];
const layout = decodeLayout(code)!;
const solution = levelSolution(row)!;
console.log(symmetryKey(layout,solution));5x5:6aaIE56IE57bafd5Ca9BjaaaIWhat it prints (run when this page was built)