js-chess-engine 1.0.2 → 2.0.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.
Files changed (103) hide show
  1. package/README.md +586 -205
  2. package/dist/adapters/APIAdapter.d.ts +88 -0
  3. package/dist/adapters/APIAdapter.d.ts.map +1 -0
  4. package/dist/adapters/APIAdapter.js +225 -0
  5. package/dist/adapters/APIAdapter.js.map +1 -0
  6. package/dist/ai/AIEngine.d.ts +42 -0
  7. package/dist/ai/AIEngine.d.ts.map +1 -0
  8. package/dist/ai/AIEngine.js +62 -0
  9. package/dist/ai/AIEngine.js.map +1 -0
  10. package/dist/ai/Evaluator.d.ts +48 -0
  11. package/dist/ai/Evaluator.d.ts.map +1 -0
  12. package/dist/ai/Evaluator.js +248 -0
  13. package/dist/ai/Evaluator.js.map +1 -0
  14. package/dist/ai/MoveOrdering.d.ts +60 -0
  15. package/dist/ai/MoveOrdering.d.ts.map +1 -0
  16. package/dist/ai/MoveOrdering.js +173 -0
  17. package/dist/ai/MoveOrdering.js.map +1 -0
  18. package/dist/ai/Search.d.ts +62 -0
  19. package/dist/ai/Search.d.ts.map +1 -0
  20. package/dist/ai/Search.js +340 -0
  21. package/dist/ai/Search.js.map +1 -0
  22. package/dist/ai/TranspositionTable.d.ts +100 -0
  23. package/dist/ai/TranspositionTable.d.ts.map +1 -0
  24. package/dist/ai/TranspositionTable.js +176 -0
  25. package/dist/ai/TranspositionTable.js.map +1 -0
  26. package/dist/core/AttackDetector.d.ts +52 -0
  27. package/dist/core/AttackDetector.d.ts.map +1 -0
  28. package/dist/core/AttackDetector.js +397 -0
  29. package/dist/core/AttackDetector.js.map +1 -0
  30. package/dist/core/Board.d.ts +109 -0
  31. package/dist/core/Board.d.ts.map +1 -0
  32. package/dist/core/Board.js +410 -0
  33. package/dist/core/Board.js.map +1 -0
  34. package/dist/core/MoveGenerator.d.ts +48 -0
  35. package/dist/core/MoveGenerator.d.ts.map +1 -0
  36. package/dist/core/MoveGenerator.js +678 -0
  37. package/dist/core/MoveGenerator.js.map +1 -0
  38. package/dist/core/Position.d.ts +135 -0
  39. package/dist/core/Position.d.ts.map +1 -0
  40. package/dist/core/Position.js +351 -0
  41. package/dist/core/Position.js.map +1 -0
  42. package/dist/core/index.d.ts +9 -0
  43. package/dist/core/index.d.ts.map +1 -0
  44. package/dist/core/index.js +25 -0
  45. package/dist/core/index.js.map +1 -0
  46. package/dist/core/zobrist.d.ts +93 -0
  47. package/dist/core/zobrist.d.ts.map +1 -0
  48. package/dist/core/zobrist.js +273 -0
  49. package/dist/core/zobrist.js.map +1 -0
  50. package/dist/index.d.ts +154 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +353 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/types/ai.types.d.ts +97 -0
  55. package/dist/types/ai.types.d.ts.map +1 -0
  56. package/dist/types/ai.types.js +17 -0
  57. package/dist/types/ai.types.js.map +1 -0
  58. package/dist/types/board.types.d.ts +140 -0
  59. package/dist/types/board.types.d.ts.map +1 -0
  60. package/dist/types/board.types.js +34 -0
  61. package/dist/types/board.types.js.map +1 -0
  62. package/dist/types/index.d.ts +7 -0
  63. package/dist/types/index.d.ts.map +1 -0
  64. package/dist/types/index.js +26 -0
  65. package/dist/types/index.js.map +1 -0
  66. package/dist/types/move.types.d.ts +70 -0
  67. package/dist/types/move.types.d.ts.map +1 -0
  68. package/dist/types/move.types.js +53 -0
  69. package/dist/types/move.types.js.map +1 -0
  70. package/dist/utils/constants.d.ts +123 -0
  71. package/dist/utils/constants.d.ts.map +1 -0
  72. package/dist/utils/constants.js +259 -0
  73. package/dist/utils/constants.js.map +1 -0
  74. package/dist/utils/conversion.d.ts +152 -0
  75. package/dist/utils/conversion.d.ts.map +1 -0
  76. package/dist/utils/conversion.js +288 -0
  77. package/dist/utils/conversion.js.map +1 -0
  78. package/dist/utils/environment.d.ts +33 -0
  79. package/dist/utils/environment.d.ts.map +1 -0
  80. package/dist/utils/environment.js +71 -0
  81. package/dist/utils/environment.js.map +1 -0
  82. package/dist/utils/fen.d.ts +28 -0
  83. package/dist/utils/fen.d.ts.map +1 -0
  84. package/dist/utils/fen.js +203 -0
  85. package/dist/utils/fen.js.map +1 -0
  86. package/package.json +31 -29
  87. package/.eslintrc.json +0 -16
  88. package/.github/workflows/main.yml +0 -20
  89. package/CHANGELOG.md +0 -587
  90. package/dist/js-chess-engine.js +0 -1
  91. package/example/aiMatch.mjs +0 -21
  92. package/example/console.mjs +0 -37
  93. package/example/server.mjs +0 -27
  94. package/lib/Board.mjs +0 -943
  95. package/lib/const/board.mjs +0 -838
  96. package/lib/js-chess-engine.mjs +0 -99
  97. package/lib/utils.mjs +0 -154
  98. package/test/.eslintrc.json +0 -11
  99. package/test/ai.test.mjs +0 -132
  100. package/test/badge.svg +0 -1
  101. package/test/importExport.mjs +0 -108
  102. package/test/moves.test.mjs +0 -773
  103. package/webpack.config.js +0 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoveGenerator.js","sourceRoot":"","sources":["../../src/core/MoveGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Advanced bitboard operations and position utilities
3
+ *
4
+ * This module provides fast bitboard manipulation for move generation
5
+ * and attack detection.
6
+ */
7
+ import { Bitboard, SquareIndex } from '../types';
8
+ /**
9
+ * File masks (A-H files)
10
+ */
11
+ export declare const FILE_MASKS: readonly Bitboard[];
12
+ /**
13
+ * Rank masks (1-8 ranks)
14
+ */
15
+ export declare const RANK_MASKS: readonly Bitboard[];
16
+ /**
17
+ * Diagonal masks (A1-H8 diagonals)
18
+ */
19
+ export declare const DIAGONAL_MASKS: readonly Bitboard[];
20
+ /**
21
+ * Anti-diagonal masks (H1-A8 diagonals)
22
+ */
23
+ export declare const ANTI_DIAGONAL_MASKS: readonly Bitboard[];
24
+ /**
25
+ * Edge masks
26
+ */
27
+ export declare const EDGE_MASK = 18411139144890810879n;
28
+ export declare const NOT_A_FILE = 18374403900871474942n;
29
+ export declare const NOT_H_FILE = 9187201950435737471n;
30
+ export declare const NOT_AB_FILE = 18229723555195321596n;
31
+ export declare const NOT_GH_FILE = 4557430888798830399n;
32
+ export declare const NOT_RANK_1 = 18446744073709551360n;
33
+ export declare const NOT_RANK_8 = 72057594037927935n;
34
+ /**
35
+ * Shift bitboard north (towards rank 8)
36
+ */
37
+ export declare function shiftNorth(bb: Bitboard): Bitboard;
38
+ /**
39
+ * Shift bitboard south (towards rank 1)
40
+ */
41
+ export declare function shiftSouth(bb: Bitboard): Bitboard;
42
+ /**
43
+ * Shift bitboard east (towards H-file)
44
+ */
45
+ export declare function shiftEast(bb: Bitboard): Bitboard;
46
+ /**
47
+ * Shift bitboard west (towards A-file)
48
+ */
49
+ export declare function shiftWest(bb: Bitboard): Bitboard;
50
+ /**
51
+ * Shift bitboard north-east
52
+ */
53
+ export declare function shiftNorthEast(bb: Bitboard): Bitboard;
54
+ /**
55
+ * Shift bitboard north-west
56
+ */
57
+ export declare function shiftNorthWest(bb: Bitboard): Bitboard;
58
+ /**
59
+ * Shift bitboard south-east
60
+ */
61
+ export declare function shiftSouthEast(bb: Bitboard): Bitboard;
62
+ /**
63
+ * Shift bitboard south-west
64
+ */
65
+ export declare function shiftSouthWest(bb: Bitboard): Bitboard;
66
+ /**
67
+ * Get file mask for a square
68
+ */
69
+ export declare function getFileMask(index: SquareIndex): Bitboard;
70
+ /**
71
+ * Get rank mask for a square
72
+ */
73
+ export declare function getRankMask(index: SquareIndex): Bitboard;
74
+ /**
75
+ * Get diagonal mask for a square (A1-H8 direction)
76
+ */
77
+ export declare function getDiagonalMask(index: SquareIndex): Bitboard;
78
+ /**
79
+ * Get anti-diagonal mask for a square (H1-A8 direction)
80
+ */
81
+ export declare function getAntiDiagonalMask(index: SquareIndex): Bitboard;
82
+ /**
83
+ * Generate ray attacks in a direction using classical approach
84
+ * (used for move generation and attack detection)
85
+ */
86
+ export declare function rayAttacks(square: SquareIndex, occupied: Bitboard, direction: number): Bitboard;
87
+ /**
88
+ * Generate all rook attacks from a square (classical approach)
89
+ */
90
+ export declare function getRookAttacks(square: SquareIndex, occupied: Bitboard): Bitboard;
91
+ /**
92
+ * Generate all bishop attacks from a square (classical approach)
93
+ */
94
+ export declare function getBishopAttacks(square: SquareIndex, occupied: Bitboard): Bitboard;
95
+ /**
96
+ * Generate all queen attacks from a square (classical approach)
97
+ */
98
+ export declare function getQueenAttacks(square: SquareIndex, occupied: Bitboard): Bitboard;
99
+ /**
100
+ * Pre-computed king attack bitboards for each square
101
+ */
102
+ export declare const KING_ATTACKS: Bitboard[];
103
+ /**
104
+ * Pre-computed knight attack bitboards for each square
105
+ */
106
+ export declare const KNIGHT_ATTACKS: Bitboard[];
107
+ /**
108
+ * Initialize pre-computed attack tables
109
+ */
110
+ export declare function initializeAttackTables(): void;
111
+ /**
112
+ * Get king attacks for a square
113
+ */
114
+ export declare function getKingAttacks(square: SquareIndex): Bitboard;
115
+ /**
116
+ * Get knight attacks for a square
117
+ */
118
+ export declare function getKnightAttacks(square: SquareIndex): Bitboard;
119
+ /**
120
+ * Get white pawn attacks for a square
121
+ */
122
+ export declare function getWhitePawnAttacks(square: SquareIndex): Bitboard;
123
+ /**
124
+ * Get black pawn attacks for a square
125
+ */
126
+ export declare function getBlackPawnAttacks(square: SquareIndex): Bitboard;
127
+ /**
128
+ * Get all white pawn attacks from a bitboard of white pawns
129
+ */
130
+ export declare function getWhitePawnsAttacks(pawns: Bitboard): Bitboard;
131
+ /**
132
+ * Get all black pawn attacks from a bitboard of black pawns
133
+ */
134
+ export declare function getBlackPawnsAttacks(pawns: Bitboard): Bitboard;
135
+ //# sourceMappingURL=Position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Position.d.ts","sourceRoot":"","sources":["../../src/core/Position.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ /**
3
+ * Advanced bitboard operations and position utilities
4
+ *
5
+ * This module provides fast bitboard manipulation for move generation
6
+ * and attack detection.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.KNIGHT_ATTACKS = exports.KING_ATTACKS = exports.NOT_RANK_8 = exports.NOT_RANK_1 = exports.NOT_GH_FILE = exports.NOT_AB_FILE = exports.NOT_H_FILE = exports.NOT_A_FILE = exports.EDGE_MASK = exports.ANTI_DIAGONAL_MASKS = exports.DIAGONAL_MASKS = exports.RANK_MASKS = exports.FILE_MASKS = void 0;
10
+ exports.shiftNorth = shiftNorth;
11
+ exports.shiftSouth = shiftSouth;
12
+ exports.shiftEast = shiftEast;
13
+ exports.shiftWest = shiftWest;
14
+ exports.shiftNorthEast = shiftNorthEast;
15
+ exports.shiftNorthWest = shiftNorthWest;
16
+ exports.shiftSouthEast = shiftSouthEast;
17
+ exports.shiftSouthWest = shiftSouthWest;
18
+ exports.getFileMask = getFileMask;
19
+ exports.getRankMask = getRankMask;
20
+ exports.getDiagonalMask = getDiagonalMask;
21
+ exports.getAntiDiagonalMask = getAntiDiagonalMask;
22
+ exports.rayAttacks = rayAttacks;
23
+ exports.getRookAttacks = getRookAttacks;
24
+ exports.getBishopAttacks = getBishopAttacks;
25
+ exports.getQueenAttacks = getQueenAttacks;
26
+ exports.initializeAttackTables = initializeAttackTables;
27
+ exports.getKingAttacks = getKingAttacks;
28
+ exports.getKnightAttacks = getKnightAttacks;
29
+ exports.getWhitePawnAttacks = getWhitePawnAttacks;
30
+ exports.getBlackPawnAttacks = getBlackPawnAttacks;
31
+ exports.getWhitePawnsAttacks = getWhitePawnsAttacks;
32
+ exports.getBlackPawnsAttacks = getBlackPawnsAttacks;
33
+ const conversion_1 = require("../utils/conversion");
34
+ // ==================== Bitboard Masks ====================
35
+ /**
36
+ * File masks (A-H files)
37
+ */
38
+ exports.FILE_MASKS = [
39
+ 0x0101010101010101n, // A-file
40
+ 0x0202020202020202n, // B-file
41
+ 0x0404040404040404n, // C-file
42
+ 0x0808080808080808n, // D-file
43
+ 0x1010101010101010n, // E-file
44
+ 0x2020202020202020n, // F-file
45
+ 0x4040404040404040n, // G-file
46
+ 0x8080808080808080n, // H-file
47
+ ];
48
+ /**
49
+ * Rank masks (1-8 ranks)
50
+ */
51
+ exports.RANK_MASKS = [
52
+ 0x00000000000000ffn, // Rank 1
53
+ 0x000000000000ff00n, // Rank 2
54
+ 0x0000000000ff0000n, // Rank 3
55
+ 0x00000000ff000000n, // Rank 4
56
+ 0x000000ff00000000n, // Rank 5
57
+ 0x0000ff0000000000n, // Rank 6
58
+ 0x00ff000000000000n, // Rank 7
59
+ 0xff00000000000000n, // Rank 8
60
+ ];
61
+ /**
62
+ * Diagonal masks (A1-H8 diagonals)
63
+ */
64
+ exports.DIAGONAL_MASKS = [
65
+ 0x0000000000000001n,
66
+ 0x0000000000000102n,
67
+ 0x0000000000010204n,
68
+ 0x0000000001020408n,
69
+ 0x0000000102040810n,
70
+ 0x0000010204081020n,
71
+ 0x0001020408102040n,
72
+ 0x0102040810204080n,
73
+ 0x0204081020408000n,
74
+ 0x0408102040800000n,
75
+ 0x0810204080000000n,
76
+ 0x1020408000000000n,
77
+ 0x2040800000000000n,
78
+ 0x4080000000000000n,
79
+ 0x8000000000000000n,
80
+ ];
81
+ /**
82
+ * Anti-diagonal masks (H1-A8 diagonals)
83
+ */
84
+ exports.ANTI_DIAGONAL_MASKS = [
85
+ 0x0000000000000080n,
86
+ 0x0000000000008040n,
87
+ 0x0000000000804020n,
88
+ 0x0000000080402010n,
89
+ 0x0000008040201008n,
90
+ 0x0000804020100804n,
91
+ 0x0080402010080402n,
92
+ 0x8040201008040201n,
93
+ 0x4020100804020100n,
94
+ 0x2010080402010000n,
95
+ 0x1008040201000000n,
96
+ 0x0804020100000000n,
97
+ 0x0402010000000000n,
98
+ 0x0201000000000000n,
99
+ 0x0100000000000000n,
100
+ ];
101
+ /**
102
+ * Edge masks
103
+ */
104
+ exports.EDGE_MASK = 0xff818181818181ffn;
105
+ exports.NOT_A_FILE = 0xfefefefefefefefen;
106
+ exports.NOT_H_FILE = 0x7f7f7f7f7f7f7f7fn;
107
+ exports.NOT_AB_FILE = 0xfcfcfcfcfcfcfcfcn;
108
+ exports.NOT_GH_FILE = 0x3f3f3f3f3f3f3f3fn;
109
+ exports.NOT_RANK_1 = 0xffffffffffffff00n;
110
+ exports.NOT_RANK_8 = 0x00ffffffffffffffn;
111
+ // ==================== Bitboard Shifting ====================
112
+ /**
113
+ * Shift bitboard north (towards rank 8)
114
+ */
115
+ function shiftNorth(bb) {
116
+ return (bb & exports.NOT_RANK_8) << 8n;
117
+ }
118
+ /**
119
+ * Shift bitboard south (towards rank 1)
120
+ */
121
+ function shiftSouth(bb) {
122
+ return (bb & exports.NOT_RANK_1) >> 8n;
123
+ }
124
+ /**
125
+ * Shift bitboard east (towards H-file)
126
+ */
127
+ function shiftEast(bb) {
128
+ return (bb & exports.NOT_H_FILE) << 1n;
129
+ }
130
+ /**
131
+ * Shift bitboard west (towards A-file)
132
+ */
133
+ function shiftWest(bb) {
134
+ return (bb & exports.NOT_A_FILE) >> 1n;
135
+ }
136
+ /**
137
+ * Shift bitboard north-east
138
+ */
139
+ function shiftNorthEast(bb) {
140
+ return (bb & exports.NOT_H_FILE & exports.NOT_RANK_8) << 9n;
141
+ }
142
+ /**
143
+ * Shift bitboard north-west
144
+ */
145
+ function shiftNorthWest(bb) {
146
+ return (bb & exports.NOT_A_FILE & exports.NOT_RANK_8) << 7n;
147
+ }
148
+ /**
149
+ * Shift bitboard south-east
150
+ */
151
+ function shiftSouthEast(bb) {
152
+ return (bb & exports.NOT_H_FILE & exports.NOT_RANK_1) >> 7n;
153
+ }
154
+ /**
155
+ * Shift bitboard south-west
156
+ */
157
+ function shiftSouthWest(bb) {
158
+ return (bb & exports.NOT_A_FILE & exports.NOT_RANK_1) >> 9n;
159
+ }
160
+ // ==================== Square Bitboard Helpers ====================
161
+ /**
162
+ * Get file mask for a square
163
+ */
164
+ function getFileMask(index) {
165
+ const file = (0, conversion_1.getFileIndex)(index);
166
+ return exports.FILE_MASKS[file];
167
+ }
168
+ /**
169
+ * Get rank mask for a square
170
+ */
171
+ function getRankMask(index) {
172
+ const rank = (0, conversion_1.getRankIndex)(index);
173
+ return exports.RANK_MASKS[rank];
174
+ }
175
+ /**
176
+ * Get diagonal mask for a square (A1-H8 direction)
177
+ */
178
+ function getDiagonalMask(index) {
179
+ const file = (0, conversion_1.getFileIndex)(index);
180
+ const rank = (0, conversion_1.getRankIndex)(index);
181
+ const diagonalIndex = 7 + rank - file;
182
+ return exports.DIAGONAL_MASKS[diagonalIndex];
183
+ }
184
+ /**
185
+ * Get anti-diagonal mask for a square (H1-A8 direction)
186
+ */
187
+ function getAntiDiagonalMask(index) {
188
+ const file = (0, conversion_1.getFileIndex)(index);
189
+ const rank = (0, conversion_1.getRankIndex)(index);
190
+ const antiDiagonalIndex = rank + file;
191
+ return exports.ANTI_DIAGONAL_MASKS[antiDiagonalIndex];
192
+ }
193
+ // ==================== Ray Attacks ====================
194
+ /**
195
+ * Generate ray attacks in a direction using classical approach
196
+ * (used for move generation and attack detection)
197
+ */
198
+ function rayAttacks(square, occupied, direction) {
199
+ let attacks = 0n;
200
+ let current = square;
201
+ while (true) {
202
+ const next = current + direction;
203
+ // Check bounds
204
+ if (next < 0 || next > 63)
205
+ break;
206
+ // Check if we wrapped around (file changed incorrectly)
207
+ const currentFile = (0, conversion_1.getFileIndex)(current);
208
+ const nextFile = (0, conversion_1.getFileIndex)(next);
209
+ const fileDiff = Math.abs(nextFile - currentFile);
210
+ // For horizontal moves, file diff should be 1
211
+ // For vertical moves, file diff should be 0
212
+ // For diagonal moves, file diff should be 1
213
+ if (direction === 1 || direction === -1) {
214
+ // East/West
215
+ if (fileDiff !== 1)
216
+ break;
217
+ }
218
+ else if (direction === 8 || direction === -8) {
219
+ // North/South
220
+ if (fileDiff !== 0)
221
+ break;
222
+ }
223
+ else {
224
+ // Diagonal
225
+ if (fileDiff !== 1)
226
+ break;
227
+ }
228
+ const bit = 1n << BigInt(next);
229
+ attacks |= bit;
230
+ // Stop if we hit a piece
231
+ if (occupied & bit)
232
+ break;
233
+ current = next;
234
+ }
235
+ return attacks;
236
+ }
237
+ /**
238
+ * Generate all rook attacks from a square (classical approach)
239
+ */
240
+ function getRookAttacks(square, occupied) {
241
+ return (rayAttacks(square, occupied, 8) | // North
242
+ rayAttacks(square, occupied, -8) | // South
243
+ rayAttacks(square, occupied, 1) | // East
244
+ rayAttacks(square, occupied, -1) // West
245
+ );
246
+ }
247
+ /**
248
+ * Generate all bishop attacks from a square (classical approach)
249
+ */
250
+ function getBishopAttacks(square, occupied) {
251
+ return (rayAttacks(square, occupied, 9) | // North-East
252
+ rayAttacks(square, occupied, 7) | // North-West
253
+ rayAttacks(square, occupied, -7) | // South-East
254
+ rayAttacks(square, occupied, -9) // South-West
255
+ );
256
+ }
257
+ /**
258
+ * Generate all queen attacks from a square (classical approach)
259
+ */
260
+ function getQueenAttacks(square, occupied) {
261
+ return getRookAttacks(square, occupied) | getBishopAttacks(square, occupied);
262
+ }
263
+ // ==================== King and Knight Attacks ====================
264
+ /**
265
+ * Pre-computed king attack bitboards for each square
266
+ */
267
+ exports.KING_ATTACKS = new Array(64);
268
+ /**
269
+ * Pre-computed knight attack bitboards for each square
270
+ */
271
+ exports.KNIGHT_ATTACKS = new Array(64);
272
+ /**
273
+ * Initialize pre-computed attack tables
274
+ */
275
+ function initializeAttackTables() {
276
+ // Initialize king attacks
277
+ for (let sq = 0; sq < 64; sq++) {
278
+ let attacks = 0n;
279
+ const sqBit = 1n << BigInt(sq);
280
+ // King can move one square in all 8 directions
281
+ attacks |= shiftNorth(sqBit);
282
+ attacks |= shiftSouth(sqBit);
283
+ attacks |= shiftEast(sqBit);
284
+ attacks |= shiftWest(sqBit);
285
+ attacks |= shiftNorthEast(sqBit);
286
+ attacks |= shiftNorthWest(sqBit);
287
+ attacks |= shiftSouthEast(sqBit);
288
+ attacks |= shiftSouthWest(sqBit);
289
+ exports.KING_ATTACKS[sq] = attacks;
290
+ }
291
+ // Initialize knight attacks
292
+ for (let sq = 0; sq < 64; sq++) {
293
+ let attacks = 0n;
294
+ const sqBit = 1n << BigInt(sq);
295
+ // Knight moves in L-shape: 2 squares in one direction, 1 in perpendicular
296
+ const nnw = shiftNorth(shiftNorth(shiftWest(sqBit)));
297
+ const nne = shiftNorth(shiftNorth(shiftEast(sqBit)));
298
+ const nee = shiftEast(shiftEast(shiftNorth(sqBit)));
299
+ const see = shiftEast(shiftEast(shiftSouth(sqBit)));
300
+ const sse = shiftSouth(shiftSouth(shiftEast(sqBit)));
301
+ const ssw = shiftSouth(shiftSouth(shiftWest(sqBit)));
302
+ const sww = shiftWest(shiftWest(shiftSouth(sqBit)));
303
+ const nww = shiftWest(shiftWest(shiftNorth(sqBit)));
304
+ attacks = nnw | nne | nee | see | sse | ssw | sww | nww;
305
+ exports.KNIGHT_ATTACKS[sq] = attacks;
306
+ }
307
+ }
308
+ // Initialize on module load
309
+ initializeAttackTables();
310
+ /**
311
+ * Get king attacks for a square
312
+ */
313
+ function getKingAttacks(square) {
314
+ const attacks = exports.KING_ATTACKS[square];
315
+ return attacks !== undefined ? attacks : 0n;
316
+ }
317
+ /**
318
+ * Get knight attacks for a square
319
+ */
320
+ function getKnightAttacks(square) {
321
+ const attacks = exports.KNIGHT_ATTACKS[square];
322
+ return attacks !== undefined ? attacks : 0n;
323
+ }
324
+ // ==================== Pawn Attacks ====================
325
+ /**
326
+ * Get white pawn attacks for a square
327
+ */
328
+ function getWhitePawnAttacks(square) {
329
+ const sqBit = 1n << BigInt(square);
330
+ return shiftNorthEast(sqBit) | shiftNorthWest(sqBit);
331
+ }
332
+ /**
333
+ * Get black pawn attacks for a square
334
+ */
335
+ function getBlackPawnAttacks(square) {
336
+ const sqBit = 1n << BigInt(square);
337
+ return shiftSouthEast(sqBit) | shiftSouthWest(sqBit);
338
+ }
339
+ /**
340
+ * Get all white pawn attacks from a bitboard of white pawns
341
+ */
342
+ function getWhitePawnsAttacks(pawns) {
343
+ return shiftNorthEast(pawns) | shiftNorthWest(pawns);
344
+ }
345
+ /**
346
+ * Get all black pawn attacks from a bitboard of black pawns
347
+ */
348
+ function getBlackPawnsAttacks(pawns) {
349
+ return shiftSouthEast(pawns) | shiftSouthWest(pawns);
350
+ }
351
+ //# sourceMappingURL=Position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Position.js","sourceRoot":"","sources":["../../src/core/Position.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Core module exports
3
+ */
4
+ export * from './Board';
5
+ export * from './Position';
6
+ export * from './AttackDetector';
7
+ export * from './MoveGenerator';
8
+ export * from './zobrist';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Core module exports
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
+ __exportStar(require("./Board"), exports);
21
+ __exportStar(require("./Position"), exports);
22
+ __exportStar(require("./AttackDetector"), exports);
23
+ __exportStar(require("./MoveGenerator"), exports);
24
+ __exportStar(require("./zobrist"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,6CAA2B;AAC3B,mDAAiC;AACjC,kDAAgC;AAChC,4CAA0B"}