AwaseRulestype
What a game is played by, worked out from its options and its challenge.
Import it
import type { AwaseRules } from "@johnmorrisdotca/jarajara/awase";
Definition
type AwaseRules = {
challenge: AwaseChallenge | null;
hints: number | null;
shuffles: number | null;
undo: boolean;
timeMs: number | null;
reserveMs: number | null;
pairBonusMs: number;
sparkBonusMs: number;
comboBonusMs: number;
goalPairs: number | null;
goalScore: number | null;
hideBlocked: boolean;
};
Members
| Name | Type | Description |
|---|---|---|
challenge | "gold" | "spark" | "rush" | "fortune" | "sand" | "purge" | "blackout" | null | |
hints | number | null | |
shuffles | number | null | |
undo | boolean | |
timeMs | number | null | The time a game starts with, in milliseconds; null for no clock. |
reserveMs | number | null | The most time a game may be holding: pairs add to a clock only up to this. Null for no limit. |
pairBonusMs | number | Time added by every pair, by a pair of the spark face, and for each step of a combo. |
sparkBonusMs | number | |
comboBonusMs | number | |
goalPairs | number | null | Pairs to make, or points to reach, to win without clearing the layout; null where the layout must be cleared (or the gold pair taken, or the group purged). |
goalScore | number | null | |
hideBlocked | boolean | Only the free tiles show their faces: a page draws the blocked ones blank ( |
Examples
import { awaseRules, generateAwase } from "@johnmorrisdotca/jarajara/awase";
import type { AwaseRules } from "@johnmorrisdotca/jarajara/awase";
const deal = generateAwase(4,"easy",2026);
const cells = deal.givens;
const value: AwaseRules = awaseRules(cells.length,{challenge:"rush"});
console.log(value);{
challenge: 'rush',
hints: null,
shuffles: null,
undo: true,
timeMs: 180000,
reserveMs: null,
pairBonusMs: 0,
sparkBonusMs: 0,
comboBonusMs: 0,
goalPairs: 2,
goalScore: null,
hideBlocked: false
}What it prints (run when this page was built)