Skip to the content

Jarajaraジャラジャラ

Draw mahjong tiles, arrange racks and stacked boards, and play seeded Awase alone or at a shared table.

Jarajara is the Japanese sound of mahjong tiles rattling together. About the name

Contents

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

NameTypeDescription
geometryMahjongGeometry

The stacked layout’s covering and side-blocking relationships.

cellsstring

The face-code string in native slot order; dot marks a removed tile.

ruleMahjongBonusRule

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)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/jarajara 1.7.0.