react-tetris2
Version:
Classic Tetris game as a reusable React 18+ component, fully typed with TypeScript and controllable via ref.
26 lines • 1.02 kB
TypeScript
import { Matrix, PositionedPiece, Piece } from './Matrix';
import { PieceQueue as PieceQueueType } from '../modules/piece-queue';
export type State = 'PAUSED' | 'PLAYING' | 'LOST';
type HeldPiece = {
available: boolean;
piece: Piece;
};
export type Game = {
state: State;
matrix: Matrix;
piece: PositionedPiece;
heldPiece: HeldPiece | undefined;
queue: PieceQueueType;
points: number;
lines: number;
justCleared?: number[];
pendingClear?: boolean;
};
export declare const getLevel: (game: Game) => number;
export type Action = 'PAUSE' | 'RESUME' | 'TOGGLE_PAUSE' | 'TICK' | 'HOLD' | 'HARD_DROP' | 'MOVE_DOWN' | 'MOVE_LEFT' | 'MOVE_RIGHT' | 'FLIP_CLOCKWISE' | 'FLIP_COUNTERCLOCKWISE' | 'RESTART';
export declare const update: (game: Game, action: Action) => Game;
export declare function getClearedLineIndexes(matrix: Matrix): number[];
export declare const init: () => Game;
export declare function viewMatrix(game: Game): Matrix;
export {};
//# sourceMappingURL=Game.d.ts.map