snake-cli-ts
Version:
Nodejs cli snake game
44 lines (43 loc) • 1.29 kB
TypeScript
/// <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;
}