Reference · Tiles, layouts and deals
blockedByfunction
Why a tile cannot be taken now: covered by a tile on it, or held on both sides. Null for a free tile or an empty slot.
Import it
import { blockedBy } from "@johnmorrisdotca/jarajara";
Definition
function blockedBy(geometry: MahjongGeometry, cells: MahjongCells, slot: number): "covered" | "sides" | null
Parameters
| Name | Type | Description |
|---|---|---|
geometry | MahjongGeometry | The stacked layout’s covering and side-blocking relationships. |
cells | string | The face-code string in native slot order; dot marks a removed tile. |
slot | number | The zero-based slot index or slot coordinates specified by this signature. |
Returns
"covered" | "sides" | null
Why a tile cannot be taken now: covered by a tile on it, or held on both sides. null for a free tile or an empty slot.
Examples
import { generateAwase } from "@johnmorrisdotca/jarajara/awase";
import { blockedBy, freePairs, geometryOf, layoutFor } from "@johnmorrisdotca/jarajara";
const deal = generateAwase(4,"easy",2026);
const layout = layoutFor(4)!;
const geometry = geometryOf(layout);
const cells = deal.givens;
const pair = freePairs(geometry,cells,"group")[0];
console.log(blockedBy(geometry,cells,pair[0]));nullWhat it prints (run when this page was built)