Reference · Ripple Effect rules
RippleSolvetype
A bounded Ripple solve result: answer count, first solution, node work and whether the search completed.
Import it
import type { RippleSolve } from "@johnmorrisdotca/kazu/ripple";
Also exported from: @johnmorrisdotca/kazu
Definition
type RippleSolve = {
count: number;
solution: readonly number[] | null;
complete: boolean;
nodes: number;
};
Members
| Name | Type | Description |
|---|---|---|
count | number | |
solution | readonly number[] | null | |
complete | boolean | |
nodes | number |
Examples
import type { RippleBoard, RippleSolve } from "@johnmorrisdotca/kazu/ripple";
import { solveRipple } from "@johnmorrisdotca/kazu/ripple";
const rippleBoard: RippleBoard = {"width":9,"height":9,"rooms":[0,0,0,1,1,1,2,2,2,0,0,0,1,1,1,2,2,2,0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,3,3,3,4,4,4,5,5,5,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,6,6,6,7,7,7,8,8,8,6,6,6,7,7,7,8,8,8],"clues":[4,null,7,9,2,null,5,null,3,null,null,3,6,7,4,8,9,2,8,null,2,1,3,null,null,null,null,7,null,1,null,6,null,null,null,9,3,8,null,5,1,7,null,null,6,2,4,6,null,9,3,7,5,1,1,null,8,null,5,null,9,2,4,null,2,null,null,null,null,null,null,null,6,null,null,2,4,null,null,3,null]};
const value: RippleSolve = solveRipple(rippleBoard,{limit:2,nodes:20000});
console.log(value);{
count: 1,
solution: [
4, 6, 7, 9, 2, 8, 5, 1, 3, 5, 1, 3,
6, 7, 4, 8, 9, 2, 8, 9, 2, 1, 3, 5,
4, 6, 7, 7, 5, 1, 4, 6, 2, 3, 8, 9,
3, 8, 9, 5, 1, 7, 2, 4, 6, 2, 4, 6,
8, 9, 3, 7, 5, 1, 1, 3, 8, 7, 5, 6,
9, 2, 4, 9, 2, 4, 3, 8, 1, 6, 7, 5,
6, 7, 5, 2, 4, 9, 1, 3, 8
],
complete: true,
nodes: 61
}What it prints (run when this page was built)