calmGravityfunction
Settles bonded connected components one cell per deterministic bottom/ID priority step.
Import it
import { calmGravity } from "@johnmorrisdotca/houseki/magnetic-blocks";
Definition
function calmGravity(initial: readonly (Gem | null)[], bonds: readonly Bond[], width: number, height: number, mask: readonly boolean[]): readonly (Gem | null)[]
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. |
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 (Gem | null)[]
Settles bonded connected components one cell per deterministic bottom/ID priority step. 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 { calmGravity, createGame } from "@johnmorrisdotca/houseki/magnetic-blocks";
const state=createGame({seed:"docs"});
console.log(calmGravity(state.board,state.bonds,state.settings.width,state.settings.height,state.settings.mask).length);200What it prints (run when this page was built)