chlss
Version:
Open-Source Chess Engine in TypeScript.
21 lines (20 loc) • 1.83 kB
TypeScript
import { IMove } from "./move";
import { BoardPosition } from "./boardPosition";
import { Piece } from "./piece";
import { SquareIndex } from "./square";
import { Colour } from "./colour";
interface IPawnMoveGenerator {
generatePawnMoves(boardPosition: BoardPosition, piece: Piece, index: SquareIndex, posX: number, posY: number, colour: Colour, moveList: Array<IMove>, enPassant: SquareIndex | null): void;
validateYPositionToMoveTwoSquare(posY: number, colour: Colour): boolean;
isOneSquareAheadEmpty(boardPosition: BoardPosition, yDir: number, posX: number, posY: number): boolean;
getYDir(colour: Colour): number;
tryAddTwoSquareMoveIfLegalAndOneSquareIsEmpty(piece: Piece, boardPosition: BoardPosition, colour: Colour, yDir: number, posX: number, posY: number, index: SquareIndex, moveList: Array<IMove>): void;
addMove(piece: Piece, from: SquareIndex, target: SquareIndex, targetPiece: Piece, moveList: Array<IMove>): void;
addCaptureMove(boardPosition: BoardPosition, piece: Piece, index: SquareIndex, posX: number, posY: number, colour: Colour, moveList: Array<IMove>): void;
addOneMoveIfOneSquareAheadIsEmpty(piece: Piece, index: SquareIndex, targetIndex: SquareIndex, moveList: Array<IMove>): void;
tryAddEnPassant(piece: Piece, colour: Colour, index: SquareIndex, enPassant: SquareIndex | null, yDir: number, posX: number, posY: number, moveList: Array<IMove>): void;
trySetEnPassantWhenMovesTwoSquare(colour: Colour, boardPosition: BoardPosition, posX: number, posY: number, targetY: number, yDir: number): SquareIndex | null;
addMoveWithOptionalSetEnPassant(piece: Piece, from: SquareIndex, target: SquareIndex, targetPiece: Piece, moveList: Array<IMove>, setEnPassant: SquareIndex | null): void;
}
export declare const PawnMoveGenerator: IPawnMoveGenerator;
export {};