UNPKG

chlss

Version:

Open-Source Chess Engine in TypeScript.

112 lines (111 loc) 4.03 kB
"use strict"; 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 ] };