Reference · Tiles, layouts and deals
hintForfunction
A HINT, WHICH LOOKS FIRST FOR THE CHOSEN TILE'S MATCH. With a free tile chosen, the answer is a free tile that matches
it, as a pair with the chosen tile first (found: "match"), the one that leaves the stacks lowest after it; if it has
none, any free pair, said so ("other"), so a page can say "no free match for that tile" before it shows another. With
nothing chosen (or a chosen tile that is not free) it is any free pair as ever ("any"): the one lifting the layers
highest, so a hint never digs a tile deeper than it must. With no pair at all, pair is null and found is "none".
Import it
import { hintFor } from "@johnmorrisdotca/jarajara";
Definition
function hintFor(geometry: MahjongGeometry, cells: MahjongCells, rule: MahjongBonusRule, chosen?: number | null): Hint
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. |
rule | MahjongBonusRule | Grouped or identical bonus matching. |
chosen (optional) | number | null | undefined | The selected tile slot, or null without a selection. |
Returns
Hint
A HINT, WHICH LOOKS FIRST FOR THE CHOSEN TILE'S MATCH. With a free tile chosen, the answer is a free tile that matches it, as a pair with the chosen tile first (found: "match"), the one that leaves the stacks lowest after it; if it has none, any free pair, said so ("other"), so a page can say "no free match for that tile" before it shows another. With nothing chosen (or a chosen tile that is not free) it is any free pair as ever ("any"): the one lifting the layers highest, so a hint never digs a tile deeper than it must. With no pair at all, pair is null and found is "none".
Examples
import { generateAwase } from "@johnmorrisdotca/jarajara/awase";
import { geometryOf, hintFor, layoutFor } from "@johnmorrisdotca/jarajara";
const deal = generateAwase(4,"easy",2026);
const layout = layoutFor(4)!;
const geometry = geometryOf(layout);
const cells = deal.givens;
console.log(hintFor(geometry,cells,"group"));{ pair: [ 4, 7 ], found: 'any' }What it prints (run when this page was built)