UNPKG

snake-cli-ts

Version:
44 lines (43 loc) 1.29 kB
/// <reference types="node" /> import Snake from './Snake'; import Printer from './Printer'; import FoodManager from './FoodManager'; import { EventEmitter } from 'events'; export declare enum Vector { Up = "up", Down = "down", Left = "left", Right = "right" } export declare enum Direction { Horizontal = "horizontal", Vertical = "vertical" } export interface IGameConfig { moveThroughWall?: boolean; difficulty?: 'easy' | 'medium' | 'hard'; } export default class SnakeGame extends EventEmitter { private gameOvered; config: IGameConfig; snake: Snake; foodManager: FoodManager; interval: NodeJS.Timeout | null; printer: Printer; get width(): number; get height(): number; set<K extends keyof IGameConfig>(key: K, value: IGameConfig[K]): IGameConfig[K]; get<K extends keyof IGameConfig>(key: K): IGameConfig[K]; isGameOver(): boolean; isNotStarted(): boolean; getVector(dx: number, dy: number): Vector; getDir(vector: Vector): Direction; constructor(config?: IGameConfig); init(): this; reset(): void; start(): this; setSnakeMoveDirection(key: Vector): boolean; tick(): this | undefined; gameOver(): this; destroy(): this; }