GameStatetype
An immutable Colour Chains rules state. Board rows include the three hidden rows above the well.
Import it
import type { GameState } from "@johnmorrisdotca/houseki/colour-chains";
Definition
interface GameState {
readonly game: 'colour-chains';
readonly rules: 'chains-1';
readonly settings: Settings;
readonly board: readonly (Gem | null)[];
readonly phase: Phase;
readonly pausedPhase?: Exclude<Phase, 'paused'>;
readonly active: Pair | null;
readonly next: readonly (readonly [
Colour,
Colour
])[];
readonly bag: readonly Colour[];
readonly randomState: number;
readonly nextMagnetic?: readonly (readonly [
boolean,
boolean
])[];
readonly lastHorizontalDirection?: 'left' | 'right';
readonly naturePulsePending?: boolean;
readonly weatherResolvedPairs?: number;
readonly nextId: number;
readonly score: number;
readonly maxChain: number;
readonly allClears: number;
readonly completedPairs: number;
readonly resolutionTick: number;
readonly resolutionLevel?: number;
readonly waves: readonly Wave[];
readonly clearCells: readonly number[];
readonly gravityBoard: readonly (Gem | null)[] | null;
readonly resolutionHadClear: boolean;
readonly elapsedTicks: number;
readonly assisted: boolean;
readonly witnessIndex: number;
readonly recording: readonly RecordedAction[];
readonly reason?: string;
}
Members
| Name | Type | Description |
|---|---|---|
game | "colour-chains" | |
rules | "chains-1" | |
settings | Settings | |
board | readonly (Gem | null)[] | |
phase | Phase | |
pausedPhase (optional) | "falling" | "clear-mark" | "clear-remove" | "gravity" | "won" | "lost" | "finished" | undefined | |
active | Pair | null | |
next | readonly (readonly [Colour, Colour])[] | |
bag | readonly Colour[] | |
randomState | number | |
nextMagnetic (optional) | readonly (readonly [boolean, boolean])[] | undefined | |
lastHorizontalDirection (optional) | "left" | "right" | undefined | |
naturePulsePending (optional) | boolean | undefined | |
weatherResolvedPairs (optional) | number | undefined | |
nextId | number | |
score | number | |
maxChain | number | |
allClears | number | |
completedPairs | number | |
resolutionTick | number | |
resolutionLevel (optional) | number | undefined | |
waves | readonly Wave[] | |
clearCells | readonly number[] | |
gravityBoard | readonly (Gem | null)[] | null | |
resolutionHadClear | boolean | |
elapsedTicks | number | |
assisted | boolean | |
witnessIndex | number | |
recording | readonly RecordedAction[] | |
reason (optional) | string | undefined |
Examples
import { createGame } from "@johnmorrisdotca/houseki/colour-chains";
import type { GameState } from "@johnmorrisdotca/houseki/colour-chains";
const state=createGame({seed:"docs"});
const value: GameState = state;
console.log(value == null ? value : typeof value === "object" ? Object.keys(value).slice(0,6) : value);[ 'game', 'rules', 'settings', 'board', 'phase', 'active' ]What it prints (run when this page was built)