UNPKG

black-horse

Version:

Chess engine built in Javascript using the alpha-beta algorithm

81 lines (78 loc) 1.56 kB
const invert = require('lodash/invert'); module.exports = (function () { const pieces = { offBoard: -1, empty: 0, wP: 1, wN: 2, wB: 3, wR: 4, wQ: 5, wK: 6, bP: 7, bN: 8, bB: 9, bR: 10, bQ: 11, bK: 12, }; const piecesConversion = { p: pieces.bP, n: pieces.bN, b: pieces.bB, r: pieces.bR, q: pieces.bQ, k: pieces.bK, P: pieces.wP, N: pieces.wN, B: pieces.wB, R: pieces.wR, Q: pieces.wQ, K: pieces.wK, '.': pieces.empty, }; const logLevels = { info: 1, search: 2, timeout: 3, evaluation: 4, }; return { loggingEnabled: true, currentLogLevel: logLevels.search, logStrategy: 'toConsole', rowChar: '12345678', columnChar: 'abcdefgh', pieceChar: '.PNBRQKpnbrqk', colors: { white: 0, black: 1, }, pieces: pieces, whitePieces: [pieces.wP, pieces.wN, pieces.wB, pieces.wR, pieces.wQ, pieces.wK], blackPieces: [pieces.bP, pieces.bN, pieces.bB, pieces.bR, pieces.bQ, pieces.bK], fen: { startingString: 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 0', piecesConversion: piecesConversion, invertedPiecesConversion: invert(piecesConversion), validPieces: 'pnbrqkPNBRQK', validCastleChars: 'KQkq', validColorChars: 'wb', }, flags: { whiteKingCastle: 'wkc', whiteQueenCastle: 'wqc', blackKingCastle: 'bkc', blackQueenCastle: 'bqc', enPassant: 'enPassant', promotion: 'promotion', }, castleBits: { whiteKingSide: 1, whiteQueenSide: 2, blackKingSide: 4, blackQueenSide: 8, }, logLevels: logLevels, }; })();