js-chess-engine 2.3.6 → 2.3.7

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 CHANGED
@@ -29,7 +29,7 @@ yarn add js-chess-engine
29
29
 
30
30
  ```typescript
31
31
  // Import Game class and stateless functions
32
- import { Game, moves, status, move, aiMove, getFen } from 'js-chess-engine'
32
+ import { Game, moves, status, move, ai, getFen } from 'js-chess-engine'
33
33
 
34
34
  // Import types for TypeScript
35
35
  import type { BoardConfig, PieceSymbol, MovesMap, AILevel } from 'js-chess-engine'
@@ -40,21 +40,11 @@ const game = new Game()
40
40
  ### CommonJS (Node.js)
41
41
 
42
42
  ```javascript
43
- const { Game, moves, status, move, aiMove, getFen } = require('js-chess-engine')
43
+ const { Game, moves, status, move, ai, getFen } = require('js-chess-engine')
44
44
 
45
45
  const game = new Game()
46
46
  ```
47
47
 
48
- ### React / Modern JavaScript
49
-
50
- ```typescript
51
- import { Game } from 'js-chess-engine'
52
- import type { BoardConfig, MovesMap } from 'js-chess-engine'
53
-
54
- const game = new Game()
55
- const allMoves: MovesMap = game.moves()
56
- ```
57
-
58
48
  ## Examples
59
49
 
60
50
  **js-chess-engine-app** - React application example with js-chess-engine REST API backend (without persistent storage) - [GitHub](https://github.com/josefjadrny/js-chess-engine-app) or [LIVE DEMO](http://chess.josefjadrny.info/)
@@ -65,12 +55,14 @@ const allMoves: MovesMap = game.moves()
65
55
 
66
56
  You have two options for using this engine:
67
57
 
68
- - [Option 1 - With in-memory (Game class)](#option-1---with-in-memory)
69
- - [Option 2 - Without in-memory (Stateless functions)](#option-2---without-in-memory)
58
+ - [Option 1 - Game class (stateful)](#option-1---game-class-stateful)
59
+ - [Option 2 - Stateless functions](#option-2---stateless-functions)
60
+
61
+ Both options use the same transposition table cache for AI performance. The difference is that the **Game class** stores the board state internally and tracks move history, while **stateless functions** require a board configuration on each call.
70
62
 
71
- ### Option 1 - With in-memory
63
+ ### Option 1 - Game class (stateful)
72
64
 
73
- Use the Game class to create and manage a chess game. In this mode, the game state is cached in memory for better performance.
65
+ Use the `Game` class to manage chess game state. All methods use the internally stored board no need to pass configuration each time. The class also tracks full move history.
74
66
 
75
67
  ```typescript
76
68
  import { Game } from 'js-chess-engine'
@@ -196,6 +188,8 @@ console.log(result.move) // {"E2": "E4"}
196
188
  console.log(result.board) // Full board state
197
189
  ```
198
190
 
191
+ <a id="ai"></a>
192
+
199
193
  **ai**
200
194
 
201
195
  `game.ai(options?)` - Calculate the best move using AI. **Returns both the move and board state**.
@@ -308,16 +302,16 @@ const fen: string = game.exportFEN()
308
302
  // "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1"
309
303
  ```
310
304
 
311
- ### Option 2 - Without in-memory
305
+ ### Option 2 - Stateless functions
312
306
 
313
- Call stateless functions directly without creating a Game object. This is ideal for serverless environments or when you want to manage state externally.
307
+ Call functions directly without creating a `Game` object. Each function takes a board configuration as its first parameter. Ideal for serverless environments or when you manage state externally (REST APIs, Redux, etc.).
314
308
 
315
309
  ```typescript
316
- import { move, moves, status, aiMove, ai, getFen } from 'js-chess-engine'
310
+ import { move, moves, status, ai, aiMove, getFen } from 'js-chess-engine'
317
311
  import type { BoardConfig, MovesMap } from 'js-chess-engine'
318
312
  ```
319
313
 
320
- These functions require a board configuration for each call (either a BoardConfig object or FEN string).
314
+ The stateless functions are wrappers around the same engine used by the `Game` class the only signature difference is the `boardConfiguration` first parameter.
321
315
 
322
316
  #### API Description
323
317
 
@@ -328,13 +322,12 @@ These functions require a board configuration for each call (either a BoardConfi
328
322
  Params:
329
323
  - `boardConfiguration` BoardConfig | string (_mandatory_) - Board [configuration](#board-configuration) (JSON object or FEN string)
330
324
 
331
- Returns: `MovesMap` - Object mapping from-squares to arrays of to-squares
325
+ Returns: `MovesMap`
332
326
 
333
327
  ```typescript
334
328
  import { moves } from 'js-chess-engine'
335
329
  import type { MovesMap, BoardConfig } from 'js-chess-engine'
336
330
 
337
- // From BoardConfig object
338
331
  const config: BoardConfig = { /* ... */ }
339
332
  const allMoves: MovesMap = moves(config)
340
333
  // {"E2": ["E3", "E4"], "B1": ["A3", "C3"], ...}
@@ -398,13 +391,13 @@ import type { BoardConfig } from 'js-chess-engine'
398
391
  // Move from FEN string
399
392
  const config1: BoardConfig = move('rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1', 'E2', 'E4')
400
393
 
401
- // Move on existing config
394
+ // Chain moves
402
395
  const config2: BoardConfig = move(config1, 'E7', 'E5')
403
396
  ```
404
397
 
405
398
  **aiMove**
406
399
 
407
- > ⚠️ **DEPRECATED:** This function will be removed in v3.0.0. Use [`ai()`](#ai-1) instead, which returns both the move and board state.
400
+ > ⚠️ **DEPRECATED:** This function will be removed in v3.0.0. Use [`ai()`](#ai) instead, which returns both the move and board state.
408
401
 
409
402
  `aiMove(boardConfiguration, level)` - Calculate and return the best move using AI. **Returns only the move** (v1 API compatible).
410
403
 
@@ -415,16 +408,14 @@ Params:
415
408
  Returns: `HistoryEntry` - The played move (e.g., `{"E2": "E4"}`)
416
409
 
417
410
  ```typescript
418
- import { aiMove } from 'js-chess-engine'
419
- import type { HistoryEntry, AILevel } from 'js-chess-engine'
411
+ import { aiMove, ai } from 'js-chess-engine'
420
412
 
421
413
  const fen = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1'
422
- const level: AILevel = 4
423
- const move: HistoryEntry = aiMove(fen, level)
424
- console.log(move) // {"E2": "E4"}
414
+
415
+ // Deprecated
416
+ const played = aiMove(fen, 4) // {"E2": "E4"}
425
417
 
426
418
  // RECOMMENDED: Use ai() instead
427
- import { ai } from 'js-chess-engine'
428
419
  const result = ai(fen, { level: 4 })
429
420
  console.log(result.move) // {"E2": "E4"}
430
421
  console.log(result.board) // Full board state
@@ -432,22 +423,7 @@ console.log(result.board) // Full board state
432
423
 
433
424
  **ai**
434
425
 
435
- `ai(boardConfiguration, options?)` - Calculate the best move using AI. **Returns both the move and board state**.
436
-
437
- Params:
438
- - `boardConfiguration` BoardConfig | string (_mandatory_) - Board [configuration](#board-configuration)
439
- - `options` object (_optional_) - Configuration options:
440
- - `level` number (_optional_) - AI difficulty level (1-5). Default: `3`
441
- - `play` boolean (_optional_) - Whether to apply the move to the board. Default: `true`. If `false`, returns the move without modifying the board state, and `board` will contain the current state (before the move).
442
- - `analysis` boolean (_optional_) - If `true`, also returns an `analysis` payload containing all root legal moves scored by the engine's search (sorted best → worst). Default: `false`.
443
- - `ttSizeMB` number (_optional_) - Transposition table size in MB (0 to disable, 0.25-256). Default: **auto-scaled by AI level**. See [Auto-Scaling Transposition Table](#transposition-table) for details.
444
- - `depth` object (_optional_) - Override AI search depth parameters. Omitted fields fall back to the level's defaults (see [Computer AI](#computer-ai) table).
445
- - `base` number (_optional_) - Base search depth. Integer > 0.
446
- - `extended` number (_optional_) - Max adaptive extension depth. Integer 0-3.
447
- - `check` boolean (_optional_) - Enable check extensions.
448
- - `quiescence` number (_optional_) - Quiescence search depth. Integer >= 0.
449
-
450
- Returns: `{ move: HistoryEntry, board: BoardConfig, analysis?: Array<{ move: HistoryEntry, score: number }>, depth?: number, nodesSearched?: number, bestScore?: number }` - Object containing the move and board state (current state if `play=false`, updated state if `play=true`). Extra fields are returned only when `analysis: true`.
426
+ `ai(boardConfiguration, options?)` - Stateless equivalent of [`game.ai()`](#ai). **Same options and return type** see the [Game class `ai()` docs](#ai) for full parameter documentation.
451
427
 
452
428
  ```typescript
453
429
  import { ai } from 'js-chess-engine'
@@ -461,35 +437,14 @@ console.log(result1.move) // {"E2": "E4"}
461
437
  console.log(result1.board.turn) // "black" (updated after move)
462
438
 
463
439
  // Analysis mode: get move without applying it
464
- const result2 = ai(fen, { level: 4, play: false })
465
- console.log(result2.move) // {"E2": "E4"}
466
- console.log(result2.board.turn) // "white" (current state, before move)
467
-
468
- // Root move scoring (debug/inspection)
469
- const result2b = ai(fen, { level: 4, play: false, analysis: true })
470
- console.log(result2b.analysis?.slice(0, 5)) // [{ move: {"E2": "E4"}, score: 12 }, ...]
471
- console.log(result2b.bestScore)
472
- console.log(result2b.depth)
473
- console.log(result2b.nodesSearched)
474
-
475
- // Use default level 3
476
- const result3 = ai(fen)
477
- console.log(result3.move) // AI move with level 3
478
-
479
- // TT size auto-scales by level (see Auto-Scaling Transposition Table section)
480
- const result4 = ai(fen, { level: 5 })
481
- console.log(result4.move) // Level 5: 40 MB Node.js / 20 MB browser (auto)
482
-
483
- // Override TT size manually if needed
484
- const result5 = ai(fen, { level: 3, ttSizeMB: 128 })
485
- console.log(result5.move) // Force 128MB cache
486
-
487
- // Ultra-lightweight mode for low-end devices
488
- const result6 = ai(fen, { level: 2, ttSizeMB: 0.5 })
489
- console.log(result6.move) // Force 512KB cache
440
+ const result2 = ai(fen, { level: 4, play: false, analysis: true })
441
+ console.log(result2.analysis?.slice(0, 5)) // [{ move: {"E2": "E4"}, score: 12 }, ...]
442
+ console.log(result2.bestScore)
443
+ console.log(result2.depth)
444
+ console.log(result2.nodesSearched)
490
445
 
491
446
  // Custom depth overrides
492
- const result7 = ai(fen, { level: 3, depth: { base: 5, quiescence: 3 } })
447
+ const result3 = ai(fen, { level: 3, depth: { base: 5, quiescence: 3 } })
493
448
  ```
494
449
 
495
450
  ### Board Configuration
@@ -595,16 +550,15 @@ The engine includes a sophisticated AI based on the Minimax algorithm with alpha
595
550
 
596
551
  ```typescript
597
552
  import { Game } from 'js-chess-engine'
598
- import type { AILevel } from 'js-chess-engine'
599
553
 
600
554
  const game = new Game()
601
555
 
602
556
  // Different difficulty levels
603
- game.aiMove(1) // Beginner
604
- game.aiMove(2) // Easy
605
- game.aiMove(3) // Intermediate (default)
606
- game.aiMove(4) // Advanced
607
- game.aiMove(5) // Expert
557
+ game.ai({ level: 1 }) // Beginner
558
+ game.ai({ level: 2 }) // Easy
559
+ game.ai({ level: 3 }) // Intermediate (default)
560
+ game.ai({ level: 4 }) // Advanced
561
+ game.ai({ level: 5 }) // Expert
608
562
  ```
609
563
 
610
564
  **Implementation Highlights:**
@@ -733,9 +687,9 @@ game.move('E2', 'E4') // Returns move object: {"E2": "E4"}
733
687
  game.move('E2', 'E4') // Returns full BoardConfig object
734
688
  ```
735
689
 
736
- ### 3. `aiMove()` API - Now v1 Compatible
690
+ ### 3. `aiMove()` API - Restored for Migration (Deprecated)
737
691
 
738
- The `aiMove()` function has been **restored to v1 API compatibility**.
692
+ The `aiMove()` function has been **restored to v1 API compatibility** to ease migration, but is deprecated and will be removed in v3.0.0.
739
693
 
740
694
  **v1 Behavior:**
741
695
 
@@ -752,7 +706,7 @@ aiMove(config, 3) // Returns move object: {"E2": "E4"} ✅ v1 compatible
752
706
  **New `ai()` function** - For users who need both move and board state:
753
707
 
754
708
  ```typescript
755
- ai(config, 3) // Returns: { move: {"E2": "E4"}, board: {...} }
709
+ ai(config, { level: 3 }) // Returns: { move: {"E2": "E4"}, board: {...} }
756
710
  ```
757
711
 
758
712
  > ⚠️ **DEPRECATION NOTICE:** `aiMove()` is deprecated and will be removed in **v3.0.0**. Migrate to `ai()` for better functionality.
@@ -40,7 +40,7 @@ class KillerMoves {
40
40
  return;
41
41
  if (move.flags & types_1.MoveFlag.CAPTURE)
42
42
  return; // captures are ordered separately
43
- const [k1, k2] = this.killers[ply];
43
+ const k1 = this.killers[ply][0];
44
44
  if (k1 && k1.from === move.from && k1.to === move.to)
45
45
  return;
46
46
  this.killers[ply][1] = k1;
@@ -1 +1 @@
1
- {"version":3,"file":"MoveOrdering.js","sourceRoot":"","sources":["../../src/ai/MoveOrdering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoveOrdering.js","sourceRoot":"","sources":["../../src/ai/MoveOrdering.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAgD,MAAM,UAAU,CAAC;AAMvF,OAAO,EAAS,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOxD,qBAAa,MAAM;IACf,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAc;gBAErB,QAAQ,GAAE,MAAW;IAKjC,KAAK,IAAI,IAAI;IAKb,YAAY,CACR,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAU,EACrB,cAAc,GAAE,OAAc,EAC9B,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GACrC,YAAY,GAAG,IAAI;IA8HtB,OAAO,CAAC,OAAO;IAiGf,OAAO,CAAC,UAAU;IAgElB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAUxB"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAgD,MAAM,UAAU,CAAC;AAMvF,OAAO,EAAS,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOxD,qBAAa,MAAM;IACf,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAc;gBAErB,QAAQ,GAAE,MAAW;IAKjC,KAAK,IAAI,IAAI;IAKb,YAAY,CACR,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAU,EACrB,cAAc,GAAE,OAAc,EAC9B,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GACrC,YAAY,GAAG,IAAI;IA8HtB,OAAO,CAAC,OAAO;IAiGf,OAAO,CAAC,UAAU;IAoElB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAUxB"}
package/dist/ai/Search.js CHANGED
@@ -234,9 +234,14 @@ class Search {
234
234
  alpha = standPat;
235
235
  if (qDepth >= this.qMaxDepth)
236
236
  return standPat;
237
- // Generate pseudo-legal moves, filter to forcing (captures + promotions)
237
+ // Generate pseudo-legal moves, collect forcing (captures + promotions)
238
238
  const allMoves = (0, MoveGenerator_1.generatePseudoLegalMoves)(board);
239
- const forcing = allMoves.filter(m => (m.flags & types_1.MoveFlag.CAPTURE) || (m.flags & types_1.MoveFlag.PROMOTION));
239
+ const forcingMask = types_1.MoveFlag.CAPTURE | types_1.MoveFlag.PROMOTION;
240
+ const forcing = [];
241
+ for (let i = 0; i < allMoves.length; i++) {
242
+ if (allMoves[i].flags & forcingMask)
243
+ forcing.push(allMoves[i]);
244
+ }
240
245
  const tt = this.transpositionTable;
241
246
  const ttMove = tt ? tt.getBestMove(board.zobristHash) : null;
242
247
  const selector = new MoveOrdering_1.MoveSelector(forcing, ttMove, this.killerMoves, ply);
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oCAAuF;AACvF,yDAAwG;AACxG,yCAA0C;AAC1C,2DAAyE;AACzE,oDAAsD;AACtD,2CAA8D;AAE9D,6DAAuE;AACvE,iDAA2D;AAE3D,gCAAgC;AAChC,MAAM,GAAG,GAAU,qBAAS,CAAC;AAE7B,MAAa,MAAM;IACP,aAAa,GAAG,CAAC,CAAC;IAElB,SAAS,GAAG,CAAC,CAAC;IACd,cAAc,GAAG,IAAI,CAAC;IAEtB,kBAAkB,CAA4B;IAC9C,WAAW,CAAc;IAEjC,YAAY,WAAmB,EAAE;QAC7B,IAAI,CAAC,kBAAkB,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,uCAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;IACzC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,YAAY,CACR,KAAoB,EACpB,SAAiB,EACjB,YAAoB,CAAC,EACrB,iBAA0B,IAAI,EAC9B,UAAkC,EAAE;QAEpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAE3C,MAAM,KAAK,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,IAAI,EAAE,IAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,IAAI,SAAS,GAAU,qBAAS,CAAC;QACjC,IAAI,WAAoE,CAAC;QAEzE,kDAAkD;QAClD,wEAAwE;QACxE,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC;YAElD,+DAA+D;YAC/D,IAAI,KAAK,GAAU,qBAAS,CAAC;YAC7B,IAAI,IAAI,GAAU,qBAAS,CAAC;YAC5B,IAAI,KAAK,GAAG,gBAAgB,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,qBAAS,IAAI,SAAS,GAAG,qBAAS,EAAE,CAAC;gBAC3D,KAAK,GAAG,CAAC,SAAS,GAAG,KAAK,CAAU,CAAC;gBACrC,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK,CAAU,CAAC;YACxC,CAAC;YAED,wBAAwB;YACxB,IAAI,YAAY,GAAwB,IAAI,CAAC;YAC7C,IAAI,aAAa,GAAU,qBAAS,CAAC;YACrC,IAAI,eAAe,GAAuD,IAAI,CAAC;YAE/E,OAAO,IAAI,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;gBAC/E,MAAM,QAAQ,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEtE,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5C,YAAY,GAAG,IAAI,CAAC;gBACpB,aAAa,GAAG,qBAAS,CAAC;gBAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;gBAEtB,IAAI,IAAyB,CAAC;gBAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC3D,MAAM,gBAAgB,GAClB,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW;4BACzC,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW,CAAC;wBAC9C,IAAI,CAAC,gBAAgB;4BAAE,SAAS;oBACpC,CAAC;oBAED,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;oBAC/B,IAAA,iCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAE/B,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEjE,IAAI,KAAY,CAAC;oBACjB,mFAAmF;oBACnF,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;wBACnC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC1E,CAAC;yBAAM,CAAC;wBACJ,gCAAgC;wBAChC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAC/E,+CAA+C;wBAC/C,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;4BACpC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAC1E,CAAC;oBACL,CAAC;oBACD,SAAS,EAAE,CAAC;oBAEZ,IAAI,eAAe,EAAE,CAAC;wBAClB,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,KAAK,GAAG,aAAa,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;wBACjD,aAAa,GAAG,KAAK,CAAC;wBACtB,YAAY,GAAG,IAAI,CAAC;oBACxB,CAAC;oBAED,IAAI,KAAK,GAAG,SAAS;wBAAE,SAAS,GAAG,KAAK,CAAC;oBACzC,IAAI,SAAS,IAAI,IAAI;wBAAE,MAAM;gBACjC,CAAC;gBAED,iCAAiC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAS,IAAI,IAAI,GAAG,qBAAS,CAAC,EAAE,CAAC;oBACpD,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;wBACzB,yBAAyB;wBACzB,KAAK,IAAI,CAAC,CAAC;wBACX,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAS,EAAE,KAAK,GAAG,KAAK,CAAU,CAAC;wBAChF,SAAS;oBACb,CAAC;oBACD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;wBACxB,yBAAyB;wBACzB,KAAK,IAAI,CAAC,CAAC;wBACX,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAS,EAAE,IAAI,GAAG,KAAK,CAAU,CAAC;wBAC9E,SAAS;oBACb,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACf,QAAQ,GAAG,YAAY,CAAC;gBACxB,SAAS,GAAG,aAAa,CAAC;YAC9B,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBAClB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAClD,WAAW,GAAG,eAAe,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ;YACX,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;YACxG,CAAC,CAAC,IAAI,CAAC;IACf,CAAC;IAEO,OAAO,CACX,KAAoB,EACpB,KAAa,EACb,KAAY,EACZ,IAAW,EACX,GAAW;QAEX,IAAI,CAAC,aAAa,EAAE,CAAC;QAEjB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,WAAW;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,IAAI,MAAM,GAAwB,IAAI,CAAC;QAEvC,IAAI,EAAE,EAAE,CAAC;YACL,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAW,CAAC,KAAK;oBAAE,OAAO,KAAK,CAAC,KAAK,CAAC;gBACzD,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAW,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC,KAAK,CAAC;gBACtF,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAW,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC,KAAK,CAAC;YAC3F,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,wCAAwB,EAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,2BAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,IAAI,SAAS,GAAU,CAAC,GAAG,CAAC;QAC5B,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,IAAyB,CAAC;QAE9B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3D,MAAM,gBAAgB,GAClB,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW;oBACzC,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,gBAAgB;oBAAE,SAAS;YACpC,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;YAC/B,IAAA,iCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE/B,8CAA8C;YAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,SAAS;YAExC,cAAc,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjE,IAAI,KAAY,CAAC;YACjB,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;gBACvB,gDAAgD;gBAChD,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACJ,qCAAqC;gBACrC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBACjF,+CAA+C;gBAC/C,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;oBAChC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBAChF,CAAC;YACL,CAAC;YAED,IAAI,KAAK,GAAG,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACzC,SAAS,GAAG,KAAK,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;YAED,IAAI,KAAK,GAAG,KAAK;gBAAE,KAAK,GAAG,KAAK,CAAC;YACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM;YACV,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,IAAA,8BAAa,EAAC,KAAK,CAAC;gBAAE,OAAO,qBAAS,GAAG,GAAG,CAAC;YACjD,OAAO,CAAC,CAAC;QACb,CAAC;QAED,WAAW;QACX,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;YACjB,IAAI,IAAI,GAAG,gCAAW,CAAC,KAAK,CAAC;YAC7B,IAAI,SAAS,IAAI,UAAU;gBAAE,IAAI,GAAG,gCAAW,CAAC,WAAW,CAAC;iBACvD,IAAI,SAAS,IAAI,IAAI;gBAAE,IAAI,GAAG,gCAAW,CAAC,WAAW,CAAC;YAE3D,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEG,UAAU,CACd,KAAoB,EACpB,KAAY,EACZ,IAAW,EACX,GAAW,EACX,MAAc;QAEd,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,qBAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC;QACtC,IAAI,QAAQ,GAAG,KAAK;YAAE,KAAK,GAAG,QAAQ,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE9C,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAA,wCAAwB,EAAC,KAAK,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,gBAAQ,CAAC,OAAO,GAAG,gBAAQ,CAAC,SAAS,CAAC;QAC1D,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,2BAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAE1E,IAAI,SAAS,GAAG,QAAQ,CAAC;QACzB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,IAAyB,CAAC;QAE9B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3D,MAAM,gBAAgB,GAClB,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW;oBACzC,IAAI,CAAC,cAAc,KAAK,aAAK,CAAC,WAAW,CAAC;gBAC9C,IAAI,CAAC,gBAAgB;oBAAE,SAAS;YACpC,CAAC;YAED,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;YAC/B,IAAA,iCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE/B,qBAAqB;YACrB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAAE,SAAS;YAExC,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YAE1E,IAAI,KAAK,GAAG,SAAS;gBAAE,SAAS,GAAG,KAAK,CAAC;YACzC,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,KAAK,GAAG,KAAK;gBAAE,KAAK,GAAG,KAAK,CAAC;QACrC,CAAC;QAED,oFAAoF;QACpF,IAAI,CAAC,iBAAiB,IAAI,IAAA,8BAAa,EAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACvB,6CAA6C;gBAC7C,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAC7E,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;gBAC/B,IAAA,iCAAiB,EAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;oBAAE,OAAO,QAAQ,CAAC,CAAC,yBAAyB;YAC9E,CAAC;YACD,OAAO,qBAAS,GAAG,GAAG,CAAC,CAAC,YAAY;QACxC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,KAAoB;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAa,CAAC,KAAK,CAAC;QACjG,MAAM,UAAU,GAAG,SAAS,KAAK,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACzF,IAAI,UAAU,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,IAAA,4BAAe,EAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,IAAA,iCAAgB,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;CAIJ;AA3UD,wBA2UC"}
@@ -1 +1 @@
1
- {"version":3,"file":"zobrist.d.ts","sourceRoot":"","sources":["../../src/core/zobrist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAiB,aAAa,EAAE,MAAM,UAAU,CAAC;AAmC5E;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA0ClC;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAyC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,WAAW,GAChB,MAAM,CAYR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,KAAK,EACpB,MAAM,EAAE,WAAW,GACpB,MAAM,CASR;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,GACtB,MAAM,CAkBR;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,GAC9B,MAAM,CAkBR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAMtF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAM3F"}
1
+ {"version":3,"file":"zobrist.d.ts","sourceRoot":"","sources":["../../src/core/zobrist.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAiB,aAAa,EAAE,MAAM,UAAU,CAAC;AA+B5E;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAqClC;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAqC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,WAAW,GAChB,MAAM,CAQR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,KAAK,EACpB,MAAM,EAAE,WAAW,GACpB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,GACtB,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,GAC9B,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAEtF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAE3F"}
@@ -38,10 +38,6 @@ let castlingKeys = [];
38
38
  * [file] -> random bigint (8 files)
39
39
  */
40
40
  let enPassantKeys = [];
41
- /**
42
- * Flag to check if Zobrist keys are initialized
43
- */
44
- let initialized = false;
45
41
  // ==================== Initialization ====================
46
42
  /**
47
43
  * Initialize Zobrist hash tables with random 64-bit numbers
@@ -50,9 +46,6 @@ let initialized = false;
50
46
  * with a fixed value for deterministic hashing.
51
47
  */
52
48
  function initZobrist() {
53
- if (initialized) {
54
- return;
55
- }
56
49
  // Initialize pseudo-random number generator with seed
57
50
  let seed = 12345n;
58
51
  const rand64 = () => {
@@ -84,7 +77,6 @@ function initZobrist() {
84
77
  for (let file = 0; file < 8; file++) {
85
78
  enPassantKeys[file] = rand64();
86
79
  }
87
- initialized = true;
88
80
  }
89
81
  // ==================== Hash Computation ====================
90
82
  /**
@@ -94,9 +86,6 @@ function initZobrist() {
94
86
  * @returns 64-bit Zobrist hash
95
87
  */
96
88
  function computeZobristHash(board) {
97
- if (!initialized) {
98
- initZobrist();
99
- }
100
89
  let hash = 0n;
101
90
  // XOR piece positions
102
91
  for (let square = 0; square < constants_1.TOTAL_SQUARES; square++) {
@@ -141,9 +130,6 @@ function computeZobristHash(board) {
141
130
  * @returns Updated hash
142
131
  */
143
132
  function updateHashMove(hash, piece, from, to) {
144
- if (!initialized) {
145
- initZobrist();
146
- }
147
133
  // Remove piece from old square
148
134
  hash ^= pieceKeys[piece][from];
149
135
  // Add piece to new square
@@ -159,9 +145,6 @@ function updateHashMove(hash, piece, from, to) {
159
145
  * @returns Updated hash
160
146
  */
161
147
  function updateHashCapture(hash, capturedPiece, square) {
162
- if (!initialized) {
163
- initZobrist();
164
- }
165
148
  // Remove captured piece
166
149
  hash ^= pieceKeys[capturedPiece][square];
167
150
  return hash;
@@ -173,9 +156,6 @@ function updateHashCapture(hash, capturedPiece, square) {
173
156
  * @returns Updated hash with toggled side
174
157
  */
175
158
  function toggleSide(hash) {
176
- if (!initialized) {
177
- initZobrist();
178
- }
179
159
  return hash ^ sideKey;
180
160
  }
181
161
  /**
@@ -193,9 +173,6 @@ function toggleSide(hash) {
193
173
  * @returns Updated hash
194
174
  */
195
175
  function updateHashCastling(hash, whiteShortOld, whiteShortNew, whiteLongOld, whiteLongNew, blackShortOld, blackShortNew, blackLongOld, blackLongNew) {
196
- if (!initialized) {
197
- initZobrist();
198
- }
199
176
  // XOR out old castling rights
200
177
  if (whiteShortOld)
201
178
  hash ^= castlingKeys[0];
@@ -225,9 +202,6 @@ function updateHashCastling(hash, whiteShortOld, whiteShortNew, whiteLongOld, wh
225
202
  * @returns Updated hash
226
203
  */
227
204
  function updateHashEnPassant(hash, oldSquare, newSquare) {
228
- if (!initialized) {
229
- initZobrist();
230
- }
231
205
  // XOR out old en passant
232
206
  if (oldSquare !== null) {
233
207
  const oldFile = oldSquare % 8;
@@ -249,9 +223,6 @@ function updateHashEnPassant(hash, oldSquare, newSquare) {
249
223
  * @returns Updated hash
250
224
  */
251
225
  function addPieceToHash(hash, piece, square) {
252
- if (!initialized) {
253
- initZobrist();
254
- }
255
226
  return hash ^ pieceKeys[piece][square];
256
227
  }
257
228
  /**
@@ -263,9 +234,6 @@ function addPieceToHash(hash, piece, square) {
263
234
  * @returns Updated hash
264
235
  */
265
236
  function removePieceFromHash(hash, piece, square) {
266
- if (!initialized) {
267
- initZobrist();
268
- }
269
237
  return hash ^ pieceKeys[piece][square];
270
238
  }
271
239
  // Initialize on module load
@@ -1 +1 @@
1
- {"version":3,"file":"zobrist.js","sourceRoot":"","sources":["../../src/core/zobrist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zobrist.js","sourceRoot":"","sources":["../../src/core/zobrist.ts"],"names":[],"mappings":"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"}
@@ -1,79 +1,11 @@
1
1
  /**
2
2
  * Constants for js-chess-engine v2
3
3
  */
4
- import { Color, Column, Row, PieceSymbol, Piece } from '../types';
4
+ import { Column, Row } from '../types';
5
5
  export declare const BOARD_SIZE = 8;
6
6
  export declare const TOTAL_SQUARES = 64;
7
7
  export declare const COLUMNS: readonly Column[];
8
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
9
  export declare const CASTLING: {
78
10
  WHITE_SHORT: {
79
11
  kingFrom: number;
@@ -100,24 +32,4 @@ export declare const CASTLING: {
100
32
  rookTo: number;
101
33
  };
102
34
  };
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
35
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIvC,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,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;CAyBpB,CAAC"}
@@ -3,181 +3,12 @@
3
3
  * Constants for js-chess-engine v2
4
4
  */
5
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");
6
+ exports.CASTLING = exports.ROWS = exports.COLUMNS = exports.TOTAL_SQUARES = exports.BOARD_SIZE = void 0;
8
7
  // ==================== Board Constants ====================
9
8
  exports.BOARD_SIZE = 8;
10
9
  exports.TOTAL_SQUARES = 64;
11
10
  exports.COLUMNS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];
12
11
  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
12
  // ==================== Castling Constants ====================
182
13
  exports.CASTLING = {
183
14
  WHITE_SHORT: {
@@ -205,55 +36,4 @@ exports.CASTLING = {
205
36
  rookTo: 59, // D8
206
37
  },
207
38
  };
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
39
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH,4DAA4D;AAE/C,QAAA,UAAU,GAAG,CAAC,CAAC;AACf,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,OAAO,GAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,QAAA,IAAI,GAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7E,+DAA+D;AAElD,QAAA,QAAQ,GAAG;IACpB,WAAW,EAAE;QACT,QAAQ,EAAE,CAAC,EAAG,KAAK;QACnB,MAAM,EAAE,CAAC,EAAK,KAAK;QACnB,QAAQ,EAAE,CAAC,EAAG,KAAK;QACnB,MAAM,EAAE,CAAC,EAAK,KAAK;KACtB;IACD,UAAU,EAAE;QACR,QAAQ,EAAE,CAAC,EAAG,KAAK;QACnB,MAAM,EAAE,CAAC,EAAK,KAAK;QACnB,QAAQ,EAAE,CAAC,EAAG,KAAK;QACnB,MAAM,EAAE,CAAC,EAAK,KAAK;KACtB;IACD,WAAW,EAAE;QACT,QAAQ,EAAE,EAAE,EAAE,KAAK;QACnB,MAAM,EAAE,EAAE,EAAI,KAAK;QACnB,QAAQ,EAAE,EAAE,EAAE,KAAK;QACnB,MAAM,EAAE,EAAE,EAAI,KAAK;KACtB;IACD,UAAU,EAAE;QACR,QAAQ,EAAE,EAAE,EAAE,KAAK;QACnB,MAAM,EAAE,EAAE,EAAI,KAAK;QACnB,QAAQ,EAAE,EAAE,EAAE,KAAK;QACnB,MAAM,EAAE,EAAE,EAAI,KAAK;KACtB;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-chess-engine",
3
- "version": "2.3.6",
3
+ "version": "2.3.7",
4
4
  "description": "Simple and fast Node.js chess engine with configurable AI and no dependencies",
5
5
  "keywords": [
6
6
  "chess",