chlss
Version:
Open-Source Chess Engine in TypeScript.
36 lines (35 loc) • 1.71 kB
TypeScript
import Pieces from "./pieces";
import { Colour } from "./colour";
import { SquareIndex } from "./square";
export type Piece = typeof Pieces.BlackKing | typeof Pieces.WhiteKing | typeof Pieces.BlackBishop | typeof Pieces.WhiteBishop | typeof Pieces.WhiteQueen | typeof Pieces.BlackQueen | typeof Pieces.WhitePawn | typeof Pieces.BlackPawn | typeof Pieces.BlackKnight | typeof Pieces.WhiteKnight | typeof Pieces.WhiteRook | typeof Pieces.BlackRook | typeof Pieces.Empty;
interface IPiece {
getColour(piece: Piece): Colour | null;
isWhite(piece: Piece): boolean;
isBlack(piece: Piece): boolean;
isEmpty(piece: Piece): boolean;
isColour(piece: Piece, colour: Colour): boolean;
compareColour(colour1: Colour, colour2: Colour): boolean;
isEnemy(piece: Piece, colour: Colour): boolean;
allWhite: Array<Piece>;
allBlack: Array<Piece>;
isEnemy(piece: Piece, colour: Colour): boolean;
isEnemyOrEmpty(piece: Piece, colour: Colour): boolean;
isEnemyOrNull(piece: Piece, colour: Colour): boolean;
isRook(piece: Piece): boolean;
isPawn(piece: Piece): boolean;
isQueen(piece: Piece): boolean;
isBishop(piece: Piece): boolean;
isKnight(piece: Piece): boolean;
isKing(piece: Piece): boolean;
isColourEnemyOrNull(tColour: Colour | null, colour: Colour): boolean;
getKing(colour: Colour): Piece;
getPawn(colour: Colour): Piece;
getRook(colour: Colour): Piece;
getQueen(colour: Colour): Piece;
getKnight(colour: Colour): Piece;
getBishop(colour: Colour): Piece;
getBishopSquareColour(i: SquareIndex): Colour;
getBishopSquareColourByCoords(x: number, y: number): Colour;
}
export declare const Piece: IPiece;
export {};