chlss
Version:
Open-Source Chess Engine in TypeScript.
32 lines (31 loc) • 1.77 kB
TypeScript
import { IMove } from "./move";
import { BoardPosition } from "./boardPosition";
import { IBoard } from "./board";
import { Colour } from "./colour";
export interface IMoveMaker {
isCastlingMove(move: IMove): boolean;
makePromotionMove(boardPosition: BoardPosition, move: IMove): void;
makeCastle(boardPosition: BoardPosition, move: IMove): void;
isEnPassant(move: IMove): {
fromX: number;
targetX: number;
} | null;
makeNormalMove(board: IBoard, boardPosition: BoardPosition, move: IMove): void;
makeMove(board: IBoard, move: IMove): void;
makeEnPassant(boardPosition: BoardPosition, move: IMove, fromX: number, targetX: number): void;
disableCastling(board: IBoard, move: IMove): void;
clearEnPassant(board: IBoard): void;
modifyFullMoveNumber(board: IBoard, move: IMove, colour: Colour): void;
modifyHalfMoveNumber(board: IBoard, move: IMove, colour: Colour, isCastling: boolean, isEnPassant: boolean): void;
isAttack(board: IBoard, move: IMove, colour: Colour, isCastling: boolean, isEnPassant: boolean): boolean;
makeNormalMoveOnBoard(boardPosition: BoardPosition, move: IMove): void;
trySetEnPassant(board: IBoard, move: IMove): void;
tryDisableCastling(board: IBoard, move: IMove, isCastling: boolean): void;
updateColourToMove(board: IBoard, move: IMove, colour: Colour): void;
makeMoveOnBoard(boardPosition: BoardPosition, move: IMove): void;
undoCastleMove(boardPosition: BoardPosition, move: IMove): void;
undoEnPassantMove(boardPosition: BoardPosition, move: IMove): void;
undoNormalMove(boardPosition: BoardPosition, move: IMove): void;
undoMoveOnBoard(boardPosition: BoardPosition, move: IMove): void;
}
export declare const MoveMaker: IMoveMaker;