js-chess-engine 1.0.3 → 2.0.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +586 -205
- package/dist/adapters/APIAdapter.d.ts +88 -0
- package/dist/adapters/APIAdapter.d.ts.map +1 -0
- package/dist/adapters/APIAdapter.js +225 -0
- package/dist/adapters/APIAdapter.js.map +1 -0
- package/dist/ai/AIEngine.d.ts +42 -0
- package/dist/ai/AIEngine.d.ts.map +1 -0
- package/dist/ai/AIEngine.js +62 -0
- package/dist/ai/AIEngine.js.map +1 -0
- package/dist/ai/Evaluator.d.ts +48 -0
- package/dist/ai/Evaluator.d.ts.map +1 -0
- package/dist/ai/Evaluator.js +248 -0
- package/dist/ai/Evaluator.js.map +1 -0
- package/dist/ai/MoveOrdering.d.ts +60 -0
- package/dist/ai/MoveOrdering.d.ts.map +1 -0
- package/dist/ai/MoveOrdering.js +173 -0
- package/dist/ai/MoveOrdering.js.map +1 -0
- package/dist/ai/Search.d.ts +62 -0
- package/dist/ai/Search.d.ts.map +1 -0
- package/dist/ai/Search.js +340 -0
- package/dist/ai/Search.js.map +1 -0
- package/dist/ai/TranspositionTable.d.ts +100 -0
- package/dist/ai/TranspositionTable.d.ts.map +1 -0
- package/dist/ai/TranspositionTable.js +176 -0
- package/dist/ai/TranspositionTable.js.map +1 -0
- package/dist/core/AttackDetector.d.ts +52 -0
- package/dist/core/AttackDetector.d.ts.map +1 -0
- package/dist/core/AttackDetector.js +387 -0
- package/dist/core/AttackDetector.js.map +1 -0
- package/dist/core/Board.d.ts +109 -0
- package/dist/core/Board.d.ts.map +1 -0
- package/dist/core/Board.js +410 -0
- package/dist/core/Board.js.map +1 -0
- package/dist/core/MoveGenerator.d.ts +48 -0
- package/dist/core/MoveGenerator.d.ts.map +1 -0
- package/dist/core/MoveGenerator.js +678 -0
- package/dist/core/MoveGenerator.js.map +1 -0
- package/dist/core/Position.d.ts +135 -0
- package/dist/core/Position.d.ts.map +1 -0
- package/dist/core/Position.js +351 -0
- package/dist/core/Position.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/zobrist.d.ts +93 -0
- package/dist/core/zobrist.d.ts.map +1 -0
- package/dist/core/zobrist.js +273 -0
- package/dist/core/zobrist.js.map +1 -0
- package/dist/index.d.ts +154 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +353 -0
- package/dist/index.js.map +1 -0
- package/dist/types/ai.types.d.ts +97 -0
- package/dist/types/ai.types.d.ts.map +1 -0
- package/dist/types/ai.types.js +17 -0
- package/dist/types/ai.types.js.map +1 -0
- package/dist/types/board.types.d.ts +140 -0
- package/dist/types/board.types.d.ts.map +1 -0
- package/dist/types/board.types.js +34 -0
- package/dist/types/board.types.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/move.types.d.ts +70 -0
- package/dist/types/move.types.d.ts.map +1 -0
- package/dist/types/move.types.js +53 -0
- package/dist/types/move.types.js.map +1 -0
- package/dist/utils/constants.d.ts +123 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +259 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/conversion.d.ts +152 -0
- package/dist/utils/conversion.d.ts.map +1 -0
- package/dist/utils/conversion.js +288 -0
- package/dist/utils/conversion.js.map +1 -0
- package/dist/utils/environment.d.ts +33 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +71 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/fen.d.ts +28 -0
- package/dist/utils/fen.d.ts.map +1 -0
- package/dist/utils/fen.js +203 -0
- package/dist/utils/fen.js.map +1 -0
- package/package.json +25 -29
- package/.eslintrc.json +0 -16
- package/.github/workflows/main.yml +0 -20
- package/.nvmrc +0 -1
- package/CHANGELOG.md +0 -597
- package/dist/js-chess-engine.js +0 -1
- package/example/aiMatch.mjs +0 -21
- package/example/console.mjs +0 -37
- package/example/server.mjs +0 -27
- package/lib/Board.mjs +0 -946
- package/lib/const/board.mjs +0 -838
- package/lib/js-chess-engine.mjs +0 -99
- package/lib/utils.mjs +0 -154
- package/test/.eslintrc.json +0 -11
- package/test/ai.test.mjs +0 -132
- package/test/badge.svg +0 -1
- package/test/importExport.mjs +0 -108
- package/test/moves.test.mjs +0 -798
- package/webpack.config.js +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type definitions for js-chess-engine v2
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
// Export all board types
|
|
21
|
+
__exportStar(require("./board.types"), exports);
|
|
22
|
+
// Export all move types
|
|
23
|
+
__exportStar(require("./move.types"), exports);
|
|
24
|
+
// Export all AI types
|
|
25
|
+
__exportStar(require("./ai.types"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,gDAA8B;AAE9B,wBAAwB;AACxB,+CAA6B;AAE7B,sBAAsB;AACtB,6CAA2B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Move-related types for js-chess-engine
|
|
3
|
+
*/
|
|
4
|
+
import { Square, SquareIndex, Piece } from './board.types';
|
|
5
|
+
/**
|
|
6
|
+
* Public move representation
|
|
7
|
+
*/
|
|
8
|
+
export interface PublicMove {
|
|
9
|
+
[from: Square]: Square;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Move flags for special moves
|
|
13
|
+
*/
|
|
14
|
+
export declare enum MoveFlag {
|
|
15
|
+
NONE = 0,
|
|
16
|
+
EN_PASSANT = 1,
|
|
17
|
+
CASTLING = 2,
|
|
18
|
+
PROMOTION = 4,
|
|
19
|
+
PAWN_DOUBLE_PUSH = 8,
|
|
20
|
+
CAPTURE = 16
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Promotion piece type
|
|
24
|
+
*/
|
|
25
|
+
export declare enum PromotionPiece {
|
|
26
|
+
QUEEN = 5,// Or BLACK_QUEEN based on color
|
|
27
|
+
ROOK = 4,
|
|
28
|
+
BISHOP = 3,
|
|
29
|
+
KNIGHT = 2
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Internal move representation (compact)
|
|
33
|
+
*/
|
|
34
|
+
export interface InternalMove {
|
|
35
|
+
from: SquareIndex;
|
|
36
|
+
to: SquareIndex;
|
|
37
|
+
piece: Piece;
|
|
38
|
+
capturedPiece: Piece;
|
|
39
|
+
flags: MoveFlag;
|
|
40
|
+
promotionPiece?: Piece;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Move with score for AI search
|
|
44
|
+
*/
|
|
45
|
+
export interface ScoredMove {
|
|
46
|
+
move: InternalMove;
|
|
47
|
+
score: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Castling type
|
|
51
|
+
*/
|
|
52
|
+
export declare enum CastlingType {
|
|
53
|
+
NONE = 0,
|
|
54
|
+
WHITE_SHORT = 1,
|
|
55
|
+
WHITE_LONG = 2,
|
|
56
|
+
BLACK_SHORT = 3,
|
|
57
|
+
BLACK_LONG = 4
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Move ordering types
|
|
61
|
+
*/
|
|
62
|
+
export declare enum MoveOrderType {
|
|
63
|
+
TT_MOVE = 1000000,// Transposition table move
|
|
64
|
+
WINNING_CAPTURE = 100000,// MVV-LVA captures with positive score
|
|
65
|
+
KILLER_1 = 90000,// First killer move
|
|
66
|
+
KILLER_2 = 80000,// Second killer move
|
|
67
|
+
HISTORY = 0,// History heuristic (0-70000 range)
|
|
68
|
+
LOSING_CAPTURE = -10000
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=move.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move.types.d.ts","sourceRoot":"","sources":["../../src/types/move.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI3D;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAID;;GAEG;AACH,oBAAY,QAAQ;IAChB,IAAI,IAAI;IACR,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,gBAAgB,IAAI;IACpB,OAAO,KAAK;CACf;AAED;;GAEG;AACH,oBAAY,cAAc;IACtB,KAAK,IAAoB,CAAE,gCAAgC;IAC3D,IAAI,IAAmB;IACvB,MAAM,IAAqB;IAC3B,MAAM,IAAqB;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,KAAK,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,oBAAY,YAAY;IACpB,IAAI,IAAI;IACR,WAAW,IAAI;IACf,UAAU,IAAI;IACd,WAAW,IAAI;IACf,UAAU,IAAI;CACjB;AAED;;GAEG;AACH,oBAAY,aAAa;IACrB,OAAO,UAAU,CAAO,2BAA2B;IACnD,eAAe,SAAS,CAAE,uCAAuC;IACjE,QAAQ,QAAQ,CAAQ,oBAAoB;IAC5C,QAAQ,QAAQ,CAAQ,qBAAqB;IAC7C,OAAO,IAAI,CAAa,oCAAoC;IAC5D,cAAc,SAAS;CAC1B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Move-related types for js-chess-engine
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MoveOrderType = exports.CastlingType = exports.PromotionPiece = exports.MoveFlag = void 0;
|
|
7
|
+
// ==================== Internal Types ====================
|
|
8
|
+
/**
|
|
9
|
+
* Move flags for special moves
|
|
10
|
+
*/
|
|
11
|
+
var MoveFlag;
|
|
12
|
+
(function (MoveFlag) {
|
|
13
|
+
MoveFlag[MoveFlag["NONE"] = 0] = "NONE";
|
|
14
|
+
MoveFlag[MoveFlag["EN_PASSANT"] = 1] = "EN_PASSANT";
|
|
15
|
+
MoveFlag[MoveFlag["CASTLING"] = 2] = "CASTLING";
|
|
16
|
+
MoveFlag[MoveFlag["PROMOTION"] = 4] = "PROMOTION";
|
|
17
|
+
MoveFlag[MoveFlag["PAWN_DOUBLE_PUSH"] = 8] = "PAWN_DOUBLE_PUSH";
|
|
18
|
+
MoveFlag[MoveFlag["CAPTURE"] = 16] = "CAPTURE";
|
|
19
|
+
})(MoveFlag || (exports.MoveFlag = MoveFlag = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Promotion piece type
|
|
22
|
+
*/
|
|
23
|
+
var PromotionPiece;
|
|
24
|
+
(function (PromotionPiece) {
|
|
25
|
+
PromotionPiece[PromotionPiece["QUEEN"] = 5] = "QUEEN";
|
|
26
|
+
PromotionPiece[PromotionPiece["ROOK"] = 4] = "ROOK";
|
|
27
|
+
PromotionPiece[PromotionPiece["BISHOP"] = 3] = "BISHOP";
|
|
28
|
+
PromotionPiece[PromotionPiece["KNIGHT"] = 2] = "KNIGHT";
|
|
29
|
+
})(PromotionPiece || (exports.PromotionPiece = PromotionPiece = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Castling type
|
|
32
|
+
*/
|
|
33
|
+
var CastlingType;
|
|
34
|
+
(function (CastlingType) {
|
|
35
|
+
CastlingType[CastlingType["NONE"] = 0] = "NONE";
|
|
36
|
+
CastlingType[CastlingType["WHITE_SHORT"] = 1] = "WHITE_SHORT";
|
|
37
|
+
CastlingType[CastlingType["WHITE_LONG"] = 2] = "WHITE_LONG";
|
|
38
|
+
CastlingType[CastlingType["BLACK_SHORT"] = 3] = "BLACK_SHORT";
|
|
39
|
+
CastlingType[CastlingType["BLACK_LONG"] = 4] = "BLACK_LONG";
|
|
40
|
+
})(CastlingType || (exports.CastlingType = CastlingType = {}));
|
|
41
|
+
/**
|
|
42
|
+
* Move ordering types
|
|
43
|
+
*/
|
|
44
|
+
var MoveOrderType;
|
|
45
|
+
(function (MoveOrderType) {
|
|
46
|
+
MoveOrderType[MoveOrderType["TT_MOVE"] = 1000000] = "TT_MOVE";
|
|
47
|
+
MoveOrderType[MoveOrderType["WINNING_CAPTURE"] = 100000] = "WINNING_CAPTURE";
|
|
48
|
+
MoveOrderType[MoveOrderType["KILLER_1"] = 90000] = "KILLER_1";
|
|
49
|
+
MoveOrderType[MoveOrderType["KILLER_2"] = 80000] = "KILLER_2";
|
|
50
|
+
MoveOrderType[MoveOrderType["HISTORY"] = 0] = "HISTORY";
|
|
51
|
+
MoveOrderType[MoveOrderType["LOSING_CAPTURE"] = -10000] = "LOSING_CAPTURE";
|
|
52
|
+
})(MoveOrderType || (exports.MoveOrderType = MoveOrderType = {}));
|
|
53
|
+
//# sourceMappingURL=move.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move.types.js","sourceRoot":"","sources":["../../src/types/move.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAaH,2DAA2D;AAE3D;;GAEG;AACH,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,uCAAQ,CAAA;IACR,mDAAc,CAAA;IACd,+CAAY,CAAA;IACZ,iDAAa,CAAA;IACb,+DAAoB,CAAA;IACpB,8CAAY,CAAA;AAChB,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB;AAED;;GAEG;AACH,IAAY,cAKX;AALD,WAAY,cAAc;IACtB,qDAAyB,CAAA;IACzB,mDAAuB,CAAA;IACvB,uDAA2B,CAAA;IAC3B,uDAA2B,CAAA;AAC/B,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB;AAsBD;;GAEG;AACH,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,+CAAQ,CAAA;IACR,6DAAe,CAAA;IACf,2DAAc,CAAA;IACd,6DAAe,CAAA;IACf,2DAAc,CAAA;AAClB,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AAED;;GAEG;AACH,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,6DAAiB,CAAA;IACjB,4EAAwB,CAAA;IACxB,6DAAgB,CAAA;IAChB,6DAAgB,CAAA;IAChB,uDAAW,CAAA;IACX,0EAAuB,CAAA;AAC3B,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for js-chess-engine v2
|
|
3
|
+
*/
|
|
4
|
+
import { Color, Column, Row, PieceSymbol, Piece } from '../types';
|
|
5
|
+
export declare const BOARD_SIZE = 8;
|
|
6
|
+
export declare const TOTAL_SQUARES = 64;
|
|
7
|
+
export declare const COLUMNS: readonly Column[];
|
|
8
|
+
export declare const ROWS: readonly Row[];
|
|
9
|
+
export declare const PIECES: {
|
|
10
|
+
readonly KING_W: "K";
|
|
11
|
+
readonly QUEEN_W: "Q";
|
|
12
|
+
readonly ROOK_W: "R";
|
|
13
|
+
readonly BISHOP_W: "B";
|
|
14
|
+
readonly KNIGHT_W: "N";
|
|
15
|
+
readonly PAWN_W: "P";
|
|
16
|
+
readonly KING_B: "k";
|
|
17
|
+
readonly QUEEN_B: "q";
|
|
18
|
+
readonly ROOK_B: "r";
|
|
19
|
+
readonly BISHOP_B: "b";
|
|
20
|
+
readonly KNIGHT_B: "n";
|
|
21
|
+
readonly PAWN_B: "p";
|
|
22
|
+
};
|
|
23
|
+
export declare const COLORS: {
|
|
24
|
+
WHITE: Color;
|
|
25
|
+
BLACK: Color;
|
|
26
|
+
};
|
|
27
|
+
export declare const PIECE_VALUES: Record<Piece, number>;
|
|
28
|
+
/**
|
|
29
|
+
* Piece-square tables for positional evaluation
|
|
30
|
+
* From white's perspective (flipped for black)
|
|
31
|
+
*/
|
|
32
|
+
export declare const PAWN_PST: readonly number[];
|
|
33
|
+
export declare const KNIGHT_PST: readonly number[];
|
|
34
|
+
export declare const BISHOP_PST: readonly number[];
|
|
35
|
+
export declare const ROOK_PST: readonly number[];
|
|
36
|
+
export declare const QUEEN_PST: readonly number[];
|
|
37
|
+
export declare const KING_PST_MG: readonly number[];
|
|
38
|
+
export declare const KING_PST_EG: readonly number[];
|
|
39
|
+
export declare const AI_LEVELS: readonly [1, 2, 3, 4, 5];
|
|
40
|
+
/**
|
|
41
|
+
* AI depth mapping by level
|
|
42
|
+
*/
|
|
43
|
+
export declare const AI_DEPTH_BY_LEVEL: Record<number, {
|
|
44
|
+
BASE: number;
|
|
45
|
+
EXTENDED: number;
|
|
46
|
+
}>;
|
|
47
|
+
export declare const SCORE: {
|
|
48
|
+
MIN: number;
|
|
49
|
+
MAX: number;
|
|
50
|
+
MATE: number;
|
|
51
|
+
DRAW: number;
|
|
52
|
+
INFINITE: number;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Direction offsets for piece movement (0-based indexing)
|
|
56
|
+
*
|
|
57
|
+
* Board layout (0-63):
|
|
58
|
+
* 56 57 58 59 60 61 62 63 (Rank 8)
|
|
59
|
+
* 48 49 50 51 52 53 54 55 (Rank 7)
|
|
60
|
+
* ...
|
|
61
|
+
* 8 9 10 11 12 13 14 15 (Rank 2)
|
|
62
|
+
* 0 1 2 3 4 5 6 7 (Rank 1)
|
|
63
|
+
* A B C D E F G H
|
|
64
|
+
*/
|
|
65
|
+
export declare const DIRECTION: {
|
|
66
|
+
NORTH: number;
|
|
67
|
+
SOUTH: number;
|
|
68
|
+
EAST: number;
|
|
69
|
+
WEST: number;
|
|
70
|
+
NORTH_EAST: number;
|
|
71
|
+
NORTH_WEST: number;
|
|
72
|
+
SOUTH_EAST: number;
|
|
73
|
+
SOUTH_WEST: number;
|
|
74
|
+
};
|
|
75
|
+
export declare const KNIGHT_MOVES: number[];
|
|
76
|
+
export declare const KING_MOVES: number[];
|
|
77
|
+
export declare const CASTLING: {
|
|
78
|
+
WHITE_SHORT: {
|
|
79
|
+
kingFrom: number;
|
|
80
|
+
kingTo: number;
|
|
81
|
+
rookFrom: number;
|
|
82
|
+
rookTo: number;
|
|
83
|
+
};
|
|
84
|
+
WHITE_LONG: {
|
|
85
|
+
kingFrom: number;
|
|
86
|
+
kingTo: number;
|
|
87
|
+
rookFrom: number;
|
|
88
|
+
rookTo: number;
|
|
89
|
+
};
|
|
90
|
+
BLACK_SHORT: {
|
|
91
|
+
kingFrom: number;
|
|
92
|
+
kingTo: number;
|
|
93
|
+
rookFrom: number;
|
|
94
|
+
rookTo: number;
|
|
95
|
+
};
|
|
96
|
+
BLACK_LONG: {
|
|
97
|
+
kingFrom: number;
|
|
98
|
+
kingTo: number;
|
|
99
|
+
rookFrom: number;
|
|
100
|
+
rookTo: number;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export declare const TT_SIZE = 1000000;
|
|
104
|
+
export declare const STARTING_FEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
|
|
105
|
+
/**
|
|
106
|
+
* Map internal piece enum to public piece symbol
|
|
107
|
+
*/
|
|
108
|
+
export declare const PIECE_TO_SYMBOL: Record<Piece, PieceSymbol | null>;
|
|
109
|
+
/**
|
|
110
|
+
* Map public piece symbol to internal piece enum
|
|
111
|
+
*/
|
|
112
|
+
export declare const SYMBOL_TO_PIECE: Record<PieceSymbol, Piece>;
|
|
113
|
+
export declare const EVAL_WEIGHTS: {
|
|
114
|
+
DOUBLED_PAWN: number;
|
|
115
|
+
ISOLATED_PAWN: number;
|
|
116
|
+
PASSED_PAWN: number;
|
|
117
|
+
PAWN_CHAIN: number;
|
|
118
|
+
ROOK_OPEN_FILE: number;
|
|
119
|
+
ROOK_SEVENTH_RANK: number;
|
|
120
|
+
MOBILITY: number;
|
|
121
|
+
KING_PAWN_SHIELD: number;
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIlE,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAA6C,CAAC;AACnF,eAAO,MAAM,IAAI,EAAE,SAAS,GAAG,EAA6C,CAAC;AAI7E,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAC;AAIX,eAAO,MAAM,MAAM;WACG,KAAK;WACL,KAAK;CAC1B,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAc9C,CAAC;AAIF;;;GAGG;AAGH,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EASrC,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EASvC,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EASvC,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,SAAS,MAAM,EASrC,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAStC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EASxC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EASxC,CAAC;AAIF,eAAO,MAAM,SAAS,0BAA2B,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAMhF,CAAC;AAIF,eAAO,MAAM,KAAK;;;;;;CAMjB,CAAC;AAIF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC;AAGF,eAAO,MAAM,YAAY,UAExB,CAAC;AAGF,eAAO,MAAM,UAAU,UAEtB,CAAC;AAIF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpB,CAAC;AAIF,eAAO,MAAM,OAAO,UAAU,CAAC;AAI/B,eAAO,MAAM,YAAY,6DAA6D,CAAC;AAIvF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAc7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAatD,CAAC;AAIF,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAC"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Constants for js-chess-engine v2
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EVAL_WEIGHTS = exports.SYMBOL_TO_PIECE = exports.PIECE_TO_SYMBOL = exports.STARTING_FEN = exports.TT_SIZE = exports.CASTLING = exports.KING_MOVES = exports.KNIGHT_MOVES = exports.DIRECTION = exports.SCORE = exports.AI_DEPTH_BY_LEVEL = exports.AI_LEVELS = exports.KING_PST_EG = exports.KING_PST_MG = exports.QUEEN_PST = exports.ROOK_PST = exports.BISHOP_PST = exports.KNIGHT_PST = exports.PAWN_PST = exports.PIECE_VALUES = exports.COLORS = exports.PIECES = exports.ROWS = exports.COLUMNS = exports.TOTAL_SQUARES = exports.BOARD_SIZE = void 0;
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
// ==================== Board Constants ====================
|
|
9
|
+
exports.BOARD_SIZE = 8;
|
|
10
|
+
exports.TOTAL_SQUARES = 64;
|
|
11
|
+
exports.COLUMNS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];
|
|
12
|
+
exports.ROWS = ['1', '2', '3', '4', '5', '6', '7', '8'];
|
|
13
|
+
// ==================== Piece Constants ====================
|
|
14
|
+
exports.PIECES = {
|
|
15
|
+
KING_W: 'K',
|
|
16
|
+
QUEEN_W: 'Q',
|
|
17
|
+
ROOK_W: 'R',
|
|
18
|
+
BISHOP_W: 'B',
|
|
19
|
+
KNIGHT_W: 'N',
|
|
20
|
+
PAWN_W: 'P',
|
|
21
|
+
KING_B: 'k',
|
|
22
|
+
QUEEN_B: 'q',
|
|
23
|
+
ROOK_B: 'r',
|
|
24
|
+
BISHOP_B: 'b',
|
|
25
|
+
KNIGHT_B: 'n',
|
|
26
|
+
PAWN_B: 'p',
|
|
27
|
+
};
|
|
28
|
+
// ==================== Color Constants ====================
|
|
29
|
+
exports.COLORS = {
|
|
30
|
+
WHITE: 'white',
|
|
31
|
+
BLACK: 'black',
|
|
32
|
+
};
|
|
33
|
+
// ==================== Piece Values (Centipawns) ====================
|
|
34
|
+
exports.PIECE_VALUES = {
|
|
35
|
+
[types_1.Piece.EMPTY]: 0,
|
|
36
|
+
[types_1.Piece.WHITE_PAWN]: 100,
|
|
37
|
+
[types_1.Piece.WHITE_KNIGHT]: 320,
|
|
38
|
+
[types_1.Piece.WHITE_BISHOP]: 330,
|
|
39
|
+
[types_1.Piece.WHITE_ROOK]: 500,
|
|
40
|
+
[types_1.Piece.WHITE_QUEEN]: 900,
|
|
41
|
+
[types_1.Piece.WHITE_KING]: 20000,
|
|
42
|
+
[types_1.Piece.BLACK_PAWN]: 100,
|
|
43
|
+
[types_1.Piece.BLACK_KNIGHT]: 320,
|
|
44
|
+
[types_1.Piece.BLACK_BISHOP]: 330,
|
|
45
|
+
[types_1.Piece.BLACK_ROOK]: 500,
|
|
46
|
+
[types_1.Piece.BLACK_QUEEN]: 900,
|
|
47
|
+
[types_1.Piece.BLACK_KING]: 20000,
|
|
48
|
+
};
|
|
49
|
+
// ==================== Piece-Square Tables ====================
|
|
50
|
+
/**
|
|
51
|
+
* Piece-square tables for positional evaluation
|
|
52
|
+
* From white's perspective (flipped for black)
|
|
53
|
+
*/
|
|
54
|
+
// Pawn piece-square table
|
|
55
|
+
exports.PAWN_PST = [
|
|
56
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
57
|
+
50, 50, 50, 50, 50, 50, 50, 50,
|
|
58
|
+
10, 10, 20, 30, 30, 20, 10, 10,
|
|
59
|
+
5, 5, 10, 25, 25, 10, 5, 5,
|
|
60
|
+
0, 0, 0, 20, 20, 0, 0, 0,
|
|
61
|
+
5, -5, -10, 0, 0, -10, -5, 5,
|
|
62
|
+
5, 10, 10, -20, -20, 10, 10, 5,
|
|
63
|
+
0, 0, 0, 0, 0, 0, 0, 0
|
|
64
|
+
];
|
|
65
|
+
// Knight piece-square table
|
|
66
|
+
exports.KNIGHT_PST = [
|
|
67
|
+
-50, -40, -30, -30, -30, -30, -40, -50,
|
|
68
|
+
-40, -20, 0, 0, 0, 0, -20, -40,
|
|
69
|
+
-30, 0, 10, 15, 15, 10, 0, -30,
|
|
70
|
+
-30, 5, 15, 20, 20, 15, 5, -30,
|
|
71
|
+
-30, 0, 15, 20, 20, 15, 0, -30,
|
|
72
|
+
-30, 5, 10, 15, 15, 10, 5, -30,
|
|
73
|
+
-40, -20, 0, 5, 5, 0, -20, -40,
|
|
74
|
+
-50, -40, -30, -30, -30, -30, -40, -50
|
|
75
|
+
];
|
|
76
|
+
// Bishop piece-square table
|
|
77
|
+
exports.BISHOP_PST = [
|
|
78
|
+
-20, -10, -10, -10, -10, -10, -10, -20,
|
|
79
|
+
-10, 0, 0, 0, 0, 0, 0, -10,
|
|
80
|
+
-10, 0, 5, 10, 10, 5, 0, -10,
|
|
81
|
+
-10, 5, 5, 10, 10, 5, 5, -10,
|
|
82
|
+
-10, 0, 10, 10, 10, 10, 0, -10,
|
|
83
|
+
-10, 10, 10, 10, 10, 10, 10, -10,
|
|
84
|
+
-10, 5, 0, 0, 0, 0, 5, -10,
|
|
85
|
+
-20, -10, -10, -10, -10, -10, -10, -20
|
|
86
|
+
];
|
|
87
|
+
// Rook piece-square table
|
|
88
|
+
exports.ROOK_PST = [
|
|
89
|
+
0, 0, 0, 0, 0, 0, 0, 0,
|
|
90
|
+
5, 10, 10, 10, 10, 10, 10, 5,
|
|
91
|
+
-5, 0, 0, 0, 0, 0, 0, -5,
|
|
92
|
+
-5, 0, 0, 0, 0, 0, 0, -5,
|
|
93
|
+
-5, 0, 0, 0, 0, 0, 0, -5,
|
|
94
|
+
-5, 0, 0, 0, 0, 0, 0, -5,
|
|
95
|
+
-5, 0, 0, 0, 0, 0, 0, -5,
|
|
96
|
+
0, 0, 0, 5, 5, 0, 0, 0
|
|
97
|
+
];
|
|
98
|
+
// Queen piece-square table
|
|
99
|
+
exports.QUEEN_PST = [
|
|
100
|
+
-20, -10, -10, -5, -5, -10, -10, -20,
|
|
101
|
+
-10, 0, 0, 0, 0, 0, 0, -10,
|
|
102
|
+
-10, 0, 5, 5, 5, 5, 0, -10,
|
|
103
|
+
-5, 0, 5, 5, 5, 5, 0, -5,
|
|
104
|
+
0, 0, 5, 5, 5, 5, 0, -5,
|
|
105
|
+
-10, 5, 5, 5, 5, 5, 0, -10,
|
|
106
|
+
-10, 0, 5, 0, 0, 0, 0, -10,
|
|
107
|
+
-20, -10, -10, -5, -5, -10, -10, -20
|
|
108
|
+
];
|
|
109
|
+
// King piece-square table (middlegame)
|
|
110
|
+
exports.KING_PST_MG = [
|
|
111
|
+
-30, -40, -40, -50, -50, -40, -40, -30,
|
|
112
|
+
-30, -40, -40, -50, -50, -40, -40, -30,
|
|
113
|
+
-30, -40, -40, -50, -50, -40, -40, -30,
|
|
114
|
+
-30, -40, -40, -50, -50, -40, -40, -30,
|
|
115
|
+
-20, -30, -30, -40, -40, -30, -30, -20,
|
|
116
|
+
-10, -20, -20, -20, -20, -20, -20, -10,
|
|
117
|
+
20, 20, 0, 0, 0, 0, 20, 20,
|
|
118
|
+
20, 30, 10, 0, 0, 10, 30, 20
|
|
119
|
+
];
|
|
120
|
+
// King piece-square table (endgame)
|
|
121
|
+
exports.KING_PST_EG = [
|
|
122
|
+
-50, -40, -30, -20, -20, -30, -40, -50,
|
|
123
|
+
-30, -20, -10, 0, 0, -10, -20, -30,
|
|
124
|
+
-30, -10, 20, 30, 30, 20, -10, -30,
|
|
125
|
+
-30, -10, 30, 40, 40, 30, -10, -30,
|
|
126
|
+
-30, -10, 30, 40, 40, 30, -10, -30,
|
|
127
|
+
-30, -10, 20, 30, 30, 20, -10, -30,
|
|
128
|
+
-30, -30, 0, 0, 0, 0, -30, -30,
|
|
129
|
+
-50, -30, -30, -30, -30, -30, -30, -50
|
|
130
|
+
];
|
|
131
|
+
// ==================== AI Constants ====================
|
|
132
|
+
exports.AI_LEVELS = [1, 2, 3, 4, 5];
|
|
133
|
+
/**
|
|
134
|
+
* AI depth mapping by level
|
|
135
|
+
*/
|
|
136
|
+
exports.AI_DEPTH_BY_LEVEL = {
|
|
137
|
+
1: { BASE: 1, EXTENDED: 2 },
|
|
138
|
+
2: { BASE: 2, EXTENDED: 2 },
|
|
139
|
+
3: { BASE: 3, EXTENDED: 4 }, // Increased from v1 (was 2-4)
|
|
140
|
+
4: { BASE: 4, EXTENDED: 5 }, // Increased from v1 (was 3-4)
|
|
141
|
+
5: { BASE: 5, EXTENDED: 6 },
|
|
142
|
+
};
|
|
143
|
+
// ==================== Score Constants ====================
|
|
144
|
+
exports.SCORE = {
|
|
145
|
+
MIN: -20000,
|
|
146
|
+
MAX: 20000,
|
|
147
|
+
MATE: 19000,
|
|
148
|
+
DRAW: 0,
|
|
149
|
+
INFINITE: 30000,
|
|
150
|
+
};
|
|
151
|
+
// ==================== Direction Offsets ====================
|
|
152
|
+
/**
|
|
153
|
+
* Direction offsets for piece movement (0-based indexing)
|
|
154
|
+
*
|
|
155
|
+
* Board layout (0-63):
|
|
156
|
+
* 56 57 58 59 60 61 62 63 (Rank 8)
|
|
157
|
+
* 48 49 50 51 52 53 54 55 (Rank 7)
|
|
158
|
+
* ...
|
|
159
|
+
* 8 9 10 11 12 13 14 15 (Rank 2)
|
|
160
|
+
* 0 1 2 3 4 5 6 7 (Rank 1)
|
|
161
|
+
* A B C D E F G H
|
|
162
|
+
*/
|
|
163
|
+
exports.DIRECTION = {
|
|
164
|
+
NORTH: 8,
|
|
165
|
+
SOUTH: -8,
|
|
166
|
+
EAST: 1,
|
|
167
|
+
WEST: -1,
|
|
168
|
+
NORTH_EAST: 9,
|
|
169
|
+
NORTH_WEST: 7,
|
|
170
|
+
SOUTH_EAST: -7,
|
|
171
|
+
SOUTH_WEST: -9,
|
|
172
|
+
};
|
|
173
|
+
// Knight move offsets
|
|
174
|
+
exports.KNIGHT_MOVES = [
|
|
175
|
+
-17, -15, -10, -6, 6, 10, 15, 17
|
|
176
|
+
];
|
|
177
|
+
// King move offsets
|
|
178
|
+
exports.KING_MOVES = [
|
|
179
|
+
-9, -8, -7, -1, 1, 7, 8, 9
|
|
180
|
+
];
|
|
181
|
+
// ==================== Castling Constants ====================
|
|
182
|
+
exports.CASTLING = {
|
|
183
|
+
WHITE_SHORT: {
|
|
184
|
+
kingFrom: 4, // E1
|
|
185
|
+
kingTo: 6, // G1
|
|
186
|
+
rookFrom: 7, // H1
|
|
187
|
+
rookTo: 5, // F1
|
|
188
|
+
},
|
|
189
|
+
WHITE_LONG: {
|
|
190
|
+
kingFrom: 4, // E1
|
|
191
|
+
kingTo: 2, // C1
|
|
192
|
+
rookFrom: 0, // A1
|
|
193
|
+
rookTo: 3, // D1
|
|
194
|
+
},
|
|
195
|
+
BLACK_SHORT: {
|
|
196
|
+
kingFrom: 60, // E8
|
|
197
|
+
kingTo: 62, // G8
|
|
198
|
+
rookFrom: 63, // H8
|
|
199
|
+
rookTo: 61, // F8
|
|
200
|
+
},
|
|
201
|
+
BLACK_LONG: {
|
|
202
|
+
kingFrom: 60, // E8
|
|
203
|
+
kingTo: 58, // C8
|
|
204
|
+
rookFrom: 56, // A8
|
|
205
|
+
rookTo: 59, // D8
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
// ==================== Transposition Table Constants ====================
|
|
209
|
+
exports.TT_SIZE = 1000000; // 1M entries (~100MB)
|
|
210
|
+
// ==================== FEN Constants ====================
|
|
211
|
+
exports.STARTING_FEN = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';
|
|
212
|
+
// ==================== Piece Symbol Mapping ====================
|
|
213
|
+
/**
|
|
214
|
+
* Map internal piece enum to public piece symbol
|
|
215
|
+
*/
|
|
216
|
+
exports.PIECE_TO_SYMBOL = {
|
|
217
|
+
[types_1.Piece.EMPTY]: null,
|
|
218
|
+
[types_1.Piece.WHITE_PAWN]: 'P',
|
|
219
|
+
[types_1.Piece.WHITE_KNIGHT]: 'N',
|
|
220
|
+
[types_1.Piece.WHITE_BISHOP]: 'B',
|
|
221
|
+
[types_1.Piece.WHITE_ROOK]: 'R',
|
|
222
|
+
[types_1.Piece.WHITE_QUEEN]: 'Q',
|
|
223
|
+
[types_1.Piece.WHITE_KING]: 'K',
|
|
224
|
+
[types_1.Piece.BLACK_PAWN]: 'p',
|
|
225
|
+
[types_1.Piece.BLACK_KNIGHT]: 'n',
|
|
226
|
+
[types_1.Piece.BLACK_BISHOP]: 'b',
|
|
227
|
+
[types_1.Piece.BLACK_ROOK]: 'r',
|
|
228
|
+
[types_1.Piece.BLACK_QUEEN]: 'q',
|
|
229
|
+
[types_1.Piece.BLACK_KING]: 'k',
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Map public piece symbol to internal piece enum
|
|
233
|
+
*/
|
|
234
|
+
exports.SYMBOL_TO_PIECE = {
|
|
235
|
+
'P': types_1.Piece.WHITE_PAWN,
|
|
236
|
+
'N': types_1.Piece.WHITE_KNIGHT,
|
|
237
|
+
'B': types_1.Piece.WHITE_BISHOP,
|
|
238
|
+
'R': types_1.Piece.WHITE_ROOK,
|
|
239
|
+
'Q': types_1.Piece.WHITE_QUEEN,
|
|
240
|
+
'K': types_1.Piece.WHITE_KING,
|
|
241
|
+
'p': types_1.Piece.BLACK_PAWN,
|
|
242
|
+
'n': types_1.Piece.BLACK_KNIGHT,
|
|
243
|
+
'b': types_1.Piece.BLACK_BISHOP,
|
|
244
|
+
'r': types_1.Piece.BLACK_ROOK,
|
|
245
|
+
'q': types_1.Piece.BLACK_QUEEN,
|
|
246
|
+
'k': types_1.Piece.BLACK_KING,
|
|
247
|
+
};
|
|
248
|
+
// ==================== Evaluation Weights ====================
|
|
249
|
+
exports.EVAL_WEIGHTS = {
|
|
250
|
+
DOUBLED_PAWN: -10,
|
|
251
|
+
ISOLATED_PAWN: -20,
|
|
252
|
+
PASSED_PAWN: 50,
|
|
253
|
+
PAWN_CHAIN: 10,
|
|
254
|
+
ROOK_OPEN_FILE: 15,
|
|
255
|
+
ROOK_SEVENTH_RANK: 20,
|
|
256
|
+
MOBILITY: 5,
|
|
257
|
+
KING_PAWN_SHIELD: 10,
|
|
258
|
+
};
|
|
259
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|