chlss
Version:
Open-Source Chess Engine in TypeScript.
112 lines (111 loc) • 4.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Piece = void 0;
const pieces_1 = __importDefault(require("./pieces"));
const colour_1 = require("./colour");
const coords_1 = require("./coords");
exports.Piece = {
getPawn(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhitePawn : pieces_1.default.BlackPawn;
},
getKing(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhiteKing : pieces_1.default.BlackKing;
},
isEnemyOrNull(piece, colour) {
if (piece == null)
return true;
const pieceColour = (exports.Piece.getColour(piece));
return !(exports.Piece.compareColour(pieceColour, colour));
},
getColour(piece) {
if (this.allWhite.includes(piece))
return colour_1.Colours.white;
if (this.allBlack.includes(piece))
return colour_1.Colours.black;
return null;
},
isEnemy(piece, colour) {
const pieceColour = this.getColour(piece);
return pieceColour == colour_1.Colours.inverseColour(colour);
},
isEnemyOrEmpty(piece, colour) {
if (exports.Piece.isEmpty(piece))
return true;
return this.isEnemy(piece, colour);
},
isColourEnemyOrNull(tColour, colour) {
if (tColour == null)
return true;
return !exports.Piece.compareColour(tColour, colour);
},
isWhite(piece) {
return this.allWhite.includes(piece);
},
isBlack(piece) {
return this.allBlack.includes(piece);
},
isEmpty(piece) {
return piece == pieces_1.default.Empty;
},
isColour(piece, colour) {
return this.getColour(piece) == colour;
},
compareColour(colour1, colour2) {
return colour1 == colour2;
},
isRook(piece) {
return piece == pieces_1.default.WhiteRook || piece == pieces_1.default.BlackRook;
},
isBishop(piece) {
return piece == pieces_1.default.WhiteBishop || piece == pieces_1.default.BlackBishop;
},
isKing(piece) {
return piece == pieces_1.default.WhiteKing || piece == pieces_1.default.BlackKing;
},
isKnight(piece) {
return piece == pieces_1.default.WhiteKnight || piece == pieces_1.default.BlackKnight;
},
isPawn(piece) {
return piece == pieces_1.default.WhitePawn || piece == pieces_1.default.BlackPawn;
},
isQueen(piece) {
return piece == pieces_1.default.WhiteQueen || piece == pieces_1.default.BlackQueen;
},
getBishopSquareColour(i) {
return this.getBishopSquareColourByCoords(coords_1.Coords.toX(i), coords_1.Coords.toY(i));
},
getBishopSquareColourByCoords(x, y) {
return ((y + 1) % 2) - ((x + 1) % 2) == 0 ? colour_1.Colours.white : colour_1.Colours.black;
},
getBishop(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhiteBishop : pieces_1.default.BlackBishop;
},
getQueen(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhiteQueen : pieces_1.default.BlackQueen;
},
getRook(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhiteRook : pieces_1.default.BlackRook;
},
getKnight(colour) {
return colour == colour_1.Colours.white ? pieces_1.default.WhiteKing : pieces_1.default.BlackKnight;
},
allWhite: [
pieces_1.default.WhiteRook,
pieces_1.default.WhiteQueen,
pieces_1.default.WhiteKing,
pieces_1.default.WhiteBishop,
pieces_1.default.WhiteKnight,
pieces_1.default.WhitePawn
],
allBlack: [
pieces_1.default.BlackRook,
pieces_1.default.BlackQueen,
pieces_1.default.BlackKing,
pieces_1.default.BlackBishop,
pieces_1.default.BlackKnight,
pieces_1.default.BlackPawn
]
};