settlefunction
Settle surviving gems with the chosen floor rule and retain valid stable-id bonds.
Import it
import { settle } from "@johnmorrisdotca/houseki/magnetic-blocks";
Definition
function settle(initial: readonly (Gem | null)[], bonds: readonly Bond[], floor: Floor, width: number, height: number, mask: readonly boolean[]): { readonly board: readonly (Gem | null)[]; readonly bonds: readonly Bond[]; }
Parameters
| Name | Type | Description |
|---|---|---|
initial | readonly (Gem | null)[] | The row-major starting board for gravity settlement. |
bonds | readonly Bond[] | Native stable-id bonds connecting surviving gems. |
floor | Floor | The native calm or magnetic floor rule to apply. |
width | number | The native board width in cells. |
height | number | The native board height in cells. |
mask | readonly boolean[] | The row-major active-cell mask; false cells cannot hold gems. |
Returns
{ readonly board: readonly (Gem | null)[]; readonly bonds: readonly Bond[]; }
Settle surviving gems with the chosen floor rule and retain valid stable-id bonds. Nested null values denote empty board cells, absent active pieces, unselected tools or outcomes not yet reached; optional undefined fields are absent until applicable.
Examples
import { createGame, settle } from "@johnmorrisdotca/houseki/magnetic-blocks";
const state=createGame({seed:"docs"});
console.log(settle(state.board,state.bonds,"calm",state.settings.width,state.settings.height,state.settings.mask).board.length);200What it prints (run when this page was built)