js-chess-engine 2.0.2 → 2.1.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 CHANGED
@@ -3,7 +3,7 @@
3
3
  ![GitHub package.json version](https://img.shields.io/github/package-json/v/josefjadrny/js-chess-engine)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- Complete TypeScript chess engine without dependencies for Node.js >=24 and browsers. Includes configurable AI with difficulty levels 1-5.
6
+ Complete TypeScript chess engine without dependencies for Node.js >=24 and browsers. Includes configurable AI with difficulty levels 1-6.
7
7
 
8
8
  **⚠️ Upgrading from v1?** See [Breaking Changes](#breaking-changes-from-v1) section at the end of this document
9
9
 
@@ -174,7 +174,7 @@ game.removePiece('E5')
174
174
  `game.aiMove(level)` - Calculate and perform the best move for the current player using AI. **Returns only the move** (v1 API compatible).
175
175
 
176
176
  Params:
177
- - `level` AILevel (_optional_) - AI difficulty level (1-5). See [Computer AI](#computer-ai) section. Default: 3
177
+ - `level` AILevel (_optional_) - AI difficulty level (1-6). See [Computer AI](#computer-ai) section. Default: 3
178
178
 
179
179
  Returns: `HistoryEntry` - The played move (e.g., `{"E2": "E4"}`)
180
180
 
@@ -195,7 +195,7 @@ const board = game.exportJson()
195
195
 
196
196
  Params:
197
197
  - `options` object (_optional_) - Configuration options:
198
- - `level` number (_optional_) - AI difficulty level (1-5). See [Computer AI](#computer-ai) section. Default: `3`
198
+ - `level` number (_optional_) - AI difficulty level (1-6). See [Computer AI](#computer-ai) section. Default: `3`
199
199
  - `play` boolean (_optional_) - Whether to apply the move to the game. Default: `true`. If `false`, returns the move without modifying the game state, and `board` will contain the current state (before the move).
200
200
  - `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.
201
201
 
@@ -382,7 +382,7 @@ const config2: BoardConfig = move(config1, 'E7', 'E5')
382
382
 
383
383
  Params:
384
384
  - `boardConfiguration` BoardConfig | string (_mandatory_) - Board [configuration](#board-configuration)
385
- - `level` AILevel (_optional_) - AI difficulty level (1-5). Default: 3
385
+ - `level` AILevel (_optional_) - AI difficulty level (1-6). Default: 3
386
386
 
387
387
  Returns: `HistoryEntry` - The played move (e.g., `{"E2": "E4"}`)
388
388
 
@@ -403,7 +403,7 @@ console.log(move) // {"E2": "E4"}
403
403
  Params:
404
404
  - `boardConfiguration` BoardConfig | string (_mandatory_) - Board [configuration](#board-configuration)
405
405
  - `options` object (_optional_) - Configuration options:
406
- - `level` number (_optional_) - AI difficulty level (1-5). Default: `3`
406
+ - `level` number (_optional_) - AI difficulty level (1-6). Default: `3`
407
407
  - `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).
408
408
  - `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.
409
409
 
@@ -521,17 +521,18 @@ console.log(newConfig)
521
521
 
522
522
  ### Computer AI
523
523
 
524
- The engine includes a sophisticated AI based on the Minimax algorithm with alpha-beta pruning, enhanced with advanced performance optimizations. There are five difficulty levels:
524
+ The engine includes a sophisticated AI based on the Minimax algorithm with alpha-beta pruning, enhanced with advanced performance optimizations. There are six difficulty levels:
525
525
 
526
- | Level | Alias | Description | Search Depth | Avg. Time |
527
- | :---: | :---------------- | :----------------------------------- | :----------: | :-------: |
528
- | 1 | Beginner | Very weak play, minimal lookahead | 1-2 ply | <10ms |
529
- | 2 | Easy | Suitable for new chess players | 2-3 ply | ~50ms |
530
- | 3 | Intermediate | Balanced difficulty (default) | 3-4 ply | ~300ms |
531
- | 4 | Advanced | Strong play with deeper search | 4-5 ply | ~2s |
532
- | 5 | Expert | Maximum difficulty and search depth | 5-6 ply | ~7s |
526
+ | Level | Alias | Description | Search Depth |
527
+ | :---: | :---------------- | :----------------------------------- | :----------: |
528
+ | 1 | Beginner | Very weak play, minimal lookahead | 1-2 ply |
529
+ | 2 | Easy | Suitable for new chess players | 2-3 ply |
530
+ | 3 | Intermediate | Balanced difficulty (default) | 3-4 ply |
531
+ | 4 | Advanced | Strong play with deeper search | 4-5 ply |
532
+ | 5 | Expert | Very strong play, deep search | 5-6 ply |
533
+ | 6 | Master | Maximum difficulty and search depth | 6-7 ply |
533
534
 
534
- **Note:** Performance varies based on hardware and position complexity. Times shown are approximate averages on modern hardware.
535
+ **Performance:** Response time increases exponentially with level. Benchmarked on modern hardware (Linux x64, Node.js v24): levels 1-2 ~30ms, level 3 ~50ms, levels 4-6 ~60-90ms. Actual performance varies based on hardware, position complexity, and cache size. Run `npm run benchmark` to measure performance on your system.
535
536
 
536
537
  ```typescript
537
538
  import { Game } from 'js-chess-engine'
@@ -545,6 +546,7 @@ game.aiMove(2) // Easy
545
546
  game.aiMove(3) // Intermediate (default)
546
547
  game.aiMove(4) // Advanced
547
548
  game.aiMove(5) // Expert
549
+ game.aiMove(6) // Master
548
550
  ```
549
551
 
550
552
  **Implementation Highlights:**
@@ -561,11 +563,12 @@ The engine automatically adjusts cache size based on AI level and environment:
561
563
 
562
564
  | AI Level | Node.js Cache | Browser Cache | Use Case |
563
565
  | :------: | :-----------: | :-----------: | :--------------------------- |
564
- | 1 | 2 MB | 1 MB | Lightweight, fast responses |
565
- | 2 | 4 MB | 2 MB | Mobile-friendly performance |
566
- | 3 | 16 MB | 8 MB | Balanced (default) |
567
- | 4 | 32 MB | 16 MB | Strong tactical play |
568
- | 5 | 64 MB | 32 MB | Maximum strength |
566
+ | 1 | 1 MB | 0.5 MB | Lightweight, fast responses |
567
+ | 2 | 2 MB | 1 MB | Mobile-friendly performance |
568
+ | 3 | 8 MB | 4 MB | Balanced (default) |
569
+ | 4 | 16 MB | 8 MB | Strong tactical play |
570
+ | 5 | 32 MB | 16 MB | Very strong play |
571
+ | 6 | 64 MB | 32 MB | Maximum strength |
569
572
 
570
573
  Lower levels use less memory for faster responses, higher levels use more for better move quality. Browser cache sizes are appropriate for modern devices (2024+). Override with `ttSizeMB` option if needed.
571
574
 
@@ -694,7 +697,7 @@ ai(config, 3) // Returns: { move: {"E2": "E4"}, board: {...} }
694
697
  ### 4. AI Difficulty Levels Changed
695
698
 
696
699
  - **v1:** Levels 0-4 (0=easiest, 4=hardest)
697
- - **v2:** Levels 1-5 (1=easiest, 5=hardest)
700
+ - **v2:** Levels 1-6 (1=easiest, 6=hardest)
698
701
 
699
702
  **Migration:**
700
703
  - Level 0 → Level 1 (Beginner)
@@ -702,6 +705,7 @@ ai(config, 3) // Returns: { move: {"E2": "E4"}, board: {...} }
702
705
  - Level 2 → Level 3 (Intermediate, default)
703
706
  - Level 3 → Level 4 (Advanced)
704
707
  - Level 4 → Level 5 (Expert)
708
+ - New: Level 6 (Master)
705
709
 
706
710
  The default level has changed from `2` to `3` to maintain similar difficulty in the middle range.
707
711
 
@@ -7,7 +7,7 @@ import { InternalBoard, InternalMove } from '../types';
7
7
  import { AILevel } from '../types/ai.types';
8
8
  /**
9
9
  * AI difficulty level configuration
10
- * Maps AI levels (1-5) to search depths
10
+ * Maps AI levels (1-6) to search depths
11
11
  */
12
12
  interface LevelConfig {
13
13
  baseDepth: number;
@@ -25,15 +25,15 @@ export declare class AIEngine {
25
25
  * Find the best move for the current position
26
26
  *
27
27
  * @param board - Current board state
28
- * @param level - AI difficulty level (1-5, default 3)
29
- * @param ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256 MB, default 16)
28
+ * @param level - AI difficulty level (1-6, default 3)
29
+ * @param ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256 MB, auto-scaled by level)
30
30
  * @returns Best move found by the AI
31
31
  */
32
32
  findBestMove(board: InternalBoard, level?: AILevel, ttSizeMB?: number): InternalMove | null;
33
33
  /**
34
34
  * Get the search depth for a given AI level
35
35
  *
36
- * @param level - AI level (1-5)
36
+ * @param level - AI level (1-6)
37
37
  * @returns Depth configuration
38
38
  */
39
39
  static getLevelDepth(level: AILevel): LevelConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"AIEngine.d.ts","sourceRoot":"","sources":["../../src/ai/AIEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;;GAGG;AACH,UAAU,WAAW;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB;AAcD;;;GAGG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAc;;IAMnC;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,GAAE,OAAW,EAAE,QAAQ,GAAE,MAAW,GAAG,YAAY,GAAG,IAAI;IAoBlG;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW;CAGpD"}
1
+ {"version":3,"file":"AIEngine.d.ts","sourceRoot":"","sources":["../../src/ai/AIEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C;;;GAGG;AACH,UAAU,WAAW;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB;AAeD;;;GAGG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAc;;IAMnC;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,GAAE,OAAW,EAAE,QAAQ,GAAE,MAAW,GAAG,YAAY,GAAG,IAAI;IAoBlG;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW;CAGpD"}
@@ -12,11 +12,12 @@ const Search_1 = require("./Search");
12
12
  * Based on v1 behavior for compatibility
13
13
  */
14
14
  const LEVEL_CONFIG = {
15
- 1: { baseDepth: 1, extendedDepth: 2 }, // Very easy
15
+ 1: { baseDepth: 1, extendedDepth: 2 }, // Beginner
16
16
  2: { baseDepth: 2, extendedDepth: 3 }, // Easy
17
- 3: { baseDepth: 3, extendedDepth: 4 }, // Medium (default)
18
- 4: { baseDepth: 4, extendedDepth: 5 }, // Hard
19
- 5: { baseDepth: 5, extendedDepth: 6 }, // Very hard
17
+ 3: { baseDepth: 3, extendedDepth: 4 }, // Intermediate (default)
18
+ 4: { baseDepth: 4, extendedDepth: 5 }, // Advanced
19
+ 5: { baseDepth: 5, extendedDepth: 6 }, // Expert
20
+ 6: { baseDepth: 6, extendedDepth: 7 }, // Master
20
21
  };
21
22
  /**
22
23
  * AI Engine class
@@ -32,8 +33,8 @@ class AIEngine {
32
33
  * Find the best move for the current position
33
34
  *
34
35
  * @param board - Current board state
35
- * @param level - AI difficulty level (1-5, default 3)
36
- * @param ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256 MB, default 16)
36
+ * @param level - AI difficulty level (1-6, default 3)
37
+ * @param ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256 MB, auto-scaled by level)
37
38
  * @returns Best move found by the AI
38
39
  */
39
40
  findBestMove(board, level = 3, ttSizeMB = 16) {
@@ -51,7 +52,7 @@ class AIEngine {
51
52
  /**
52
53
  * Get the search depth for a given AI level
53
54
  *
54
- * @param level - AI level (1-5)
55
+ * @param level - AI level (1-6)
55
56
  * @returns Depth configuration
56
57
  */
57
58
  static getLevelDepth(level) {
@@ -1 +1 @@
1
- {"version":3,"file":"AIEngine.js","sourceRoot":"","sources":["../../src/ai/AIEngine.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,qCAAkC;AAWlC;;;GAGG;AACH,MAAM,YAAY,GAAiC;IAC/C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,YAAY;IACpD,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,OAAO;IAC/C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,mBAAmB;IAC3D,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,OAAO;IAC/C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,YAAY;CACvD,CAAC;AAEF;;;GAGG;AACH,MAAa,QAAQ;IACT,MAAM,CAAS;IACf,aAAa,GAAW,EAAE,CAAC;IAEnC;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAoB,EAAE,QAAiB,CAAC,EAAE,WAAmB,EAAE;QACxE,qCAAqC;QACrC,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,yCAAyC;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAEnC,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CACnC,KAAK,EACL,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,aAAa,CACvB,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAc;QAC/B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACJ;AA7CD,4BA6CC"}
1
+ {"version":3,"file":"AIEngine.js","sourceRoot":"","sources":["../../src/ai/AIEngine.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,qCAAkC;AAWlC;;;GAGG;AACH,MAAM,YAAY,GAAiC;IAC/C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,WAAW;IACnD,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,OAAO;IAC/C,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,yBAAyB;IACjE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,WAAW;IACnD,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,SAAS;IACjD,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAG,SAAS;CACpD,CAAC;AAEF;;;GAGG;AACH,MAAa,QAAQ;IACT,MAAM,CAAS;IACf,aAAa,GAAW,EAAE,CAAC;IAEnC;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAoB,EAAE,QAAiB,CAAC,EAAE,WAAmB,EAAE;QACxE,qCAAqC;QACrC,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,yCAAyC;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAEnC,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CACnC,KAAK,EACL,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,aAAa,CACvB,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,KAAc;QAC/B,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACJ;AA7CD,4BA6CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Evaluator.d.ts","sourceRoot":"","sources":["../../src/ai/Evaluator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAS,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAwB1C;;GAEG;AACH,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,OAAO,CAAC;AA+H9B,qBAAa,SAAS;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,GAAE,MAAU,GAAG,KAAK;IAwB3F;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CAY7D"}
1
+ {"version":3,"file":"Evaluator.d.ts","sourceRoot":"","sources":["../../src/ai/Evaluator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAS,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAwB1C;;GAEG;AACH,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,SAAS,OAAO,CAAC;AAmI9B,qBAAa,SAAS;IAClB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,GAAE,MAAU,GAAG,KAAK;IAwB3F;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA0BxC;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;CAY7D"}
@@ -42,32 +42,36 @@ const PIECE_VALUE_MULTIPLIER = 10;
42
42
  */
43
43
  const PST_MULTIPLIER = 0.5;
44
44
  // ==================== Piece-Square Tables ====================
45
- // From white's perspective (rank 0 = rank 1, rank 7 = rank 8)
45
+ // Tables are defined from BLACK's perspective (rank 0 = black's promotion, rank 7 = black's starting rank)
46
+ // They are reversed for white pieces in PST_MAP below
47
+ // Values are in pawns (will be multiplied by PST_MULTIPLIER)
46
48
  /**
47
- * Pawn piece-square table (white perspective)
49
+ * Pawn piece-square table (black's perspective, reversed for white)
50
+ * Encourages center control and advancement
48
51
  */
49
52
  const PAWN_PST = [
50
- [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
51
- [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0],
52
- [1.0, 1.0, 2.0, 3.0, 3.0, 2.0, 1.0, 1.0],
53
- [0.5, 0.5, 1.0, 2.5, 2.5, 1.0, 0.5, 0.5],
54
- [0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0],
55
- [0.5, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.5],
56
- [0.5, 0.0, 0.0, -2.0, -2.0, 0.0, 0.0, 0.5],
57
- [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
53
+ [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], // Rank 0 (promotion rank)
54
+ [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0], // Rank 1 (7th rank - near promotion)
55
+ [1.0, 1.0, 2.0, 3.0, 3.0, 2.0, 1.0, 1.0], // Rank 2 (6th rank)
56
+ [0.5, 0.5, 1.0, 2.5, 2.5, 1.0, 0.5, 0.5], // Rank 3 (5th rank)
57
+ [0.0, 0.0, 0.0, 2.0, 2.0, 0.0, 0.0, 0.0], // Rank 4 (4th rank - center breakthrough)
58
+ [0.5, 0.5, 1.0, 1.5, 1.5, 1.0, 0.5, 0.5], // Rank 5 (3rd rank - reward advancement)
59
+ [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], // Rank 6 (starting rank - neutral)
60
+ [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], // Rank 7 (back rank - pawns never here)
58
61
  ];
59
62
  /**
60
- * Knight piece-square table
63
+ * Knight piece-square table (black's perspective, reversed for white)
64
+ * Encourages centralization and active placement
61
65
  */
62
66
  const KNIGHT_PST = [
63
- [-4.0, -3.0, -2.0, -2.0, -2.0, -2.0, -3.0, -4.0],
64
- [-3.0, -2.0, 0.0, 0.0, 0.0, 0.0, -2.0, -3.0],
65
- [-2.0, 0.0, 1.0, 1.5, 1.5, 1.0, 0.0, -2.0],
66
- [-2.0, 0.5, 1.5, 2.0, 2.0, 1.5, 0.5, -2.0],
67
- [-2.0, 0.0, 1.5, 2.0, 2.0, 1.5, 0.0, -2.0],
68
- [-2.0, 0.5, 1.0, 1.5, 1.5, 1.0, 0.5, -2.0],
69
- [-3.0, -2.0, 0.0, 0.5, 0.5, 0.0, -2.0, -3.0],
70
- [-4.0, -3.0, -2.0, -2.0, -2.0, -2.0, -3.0, -4.0],
67
+ [-5.0, -4.0, -3.0, -3.0, -3.0, -3.0, -4.0, -5.0], // Back rank
68
+ [-4.0, -2.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0],
69
+ [-3.0, 0.0, 1.0, 1.5, 1.5, 1.0, 0.0, -3.0],
70
+ [-3.0, 0.5, 1.5, 2.0, 2.0, 1.5, 0.5, -3.0],
71
+ [-3.0, 0.0, 1.5, 2.0, 2.0, 1.5, 0.0, -3.0],
72
+ [-3.0, 0.5, 1.0, 1.5, 1.5, 1.0, 0.5, -3.0],
73
+ [-4.0, -2.0, 0.0, 0.5, 0.5, 0.0, -2.0, -4.0],
74
+ [-5.0, -4.0, -3.0, -3.0, -3.0, -3.0, -4.0, -5.0], // Starting rank - discourage edge knights
71
75
  ];
72
76
  /**
73
77
  * Bishop piece-square table
@@ -1 +1 @@
1
- {"version":3,"file":"Evaluator.js","sourceRoot":"","sources":["../../src/ai/Evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Evaluator.js","sourceRoot":"","sources":["../../src/ai/Evaluator.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;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAgD,MAAM,UAAU,CAAC;AAIvF,OAAO,EAAS,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;GAEG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAiB;gBAE7B,QAAQ,GAAE,MAAW;IAMjC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;;;OAOG;IACH,YAAY,CACR,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACtB,YAAY,GAAG,IAAI;IA6KtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsDnB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,SAAS;IAyKjB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CA6BpB"}
1
+ {"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAgD,MAAM,UAAU,CAAC;AAIvF,OAAO,EAAS,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKxD;;GAEG;AACH,qBAAa,MAAM;IACf,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAiB;gBAE7B,QAAQ,GAAE,MAAW;IAMjC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;;;;;;OAOG;IACH,YAAY,CACR,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACtB,YAAY,GAAG,IAAI;IAuMtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,SAAS;IAyKjB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CA6BpB"}
package/dist/ai/Search.js CHANGED
@@ -78,6 +78,9 @@ class Search {
78
78
  const orderedMoves = this.useOptimizations
79
79
  ? (0, MoveOrdering_1.orderMoves)(moves, pvMove, this.killerMoves, 0)
80
80
  : moves;
81
+ // Debug: log first few moves (only at root, only first search)
82
+ const debugRoot = false; // Set to true for debugging
83
+ const debugMoves = [];
81
84
  // Search each root move
82
85
  for (const move of orderedMoves) {
83
86
  // Make move (generateLegalMoves already filtered for legality)
@@ -110,7 +113,9 @@ class Search {
110
113
  }
111
114
  }
112
115
  // Search this move
113
- const score = -this.alphaBeta(testBoard, playerColor, baseDepth, extendedDepth, 1, // depth = 1
116
+ // Note: alphaBeta already handles minimax internally (isMaximizing logic),
117
+ // so we don't negate the result. It returns scores from rootPlayerColor perspective.
118
+ const score = this.alphaBeta(testBoard, playerColor, baseDepth, extendedDepth, 1, // depth = 1
114
119
  wasCapture, initialScore, Evaluator_1.SCORE_MIN, Evaluator_1.SCORE_MAX);
115
120
  // Heuristic guardrail: avoid obvious "hang the moved piece" blunders at the root.
116
121
  // This helps especially at low/medium depths where the search may miss immediate recaptures.
@@ -145,6 +150,15 @@ class Search {
145
150
  if (move.flags & types_1.MoveFlag.PROMOTION) {
146
151
  finalScore += 200;
147
152
  }
153
+ // Debug logging
154
+ if (debugRoot && debugMoves.length < 20) { // Increased to 20 to see more moves
155
+ const fromFile = String.fromCharCode(65 + (move.from % 8));
156
+ const fromRank = Math.floor(move.from / 8) + 1;
157
+ const toFile = String.fromCharCode(65 + (move.to % 8));
158
+ const toRank = Math.floor(move.to / 8) + 1;
159
+ const moveStr = `${fromFile}${fromRank}-${toFile}${toRank}`;
160
+ debugMoves.push({ move: moveStr, score: finalScore });
161
+ }
148
162
  // Update best move.
149
163
  // Use a tiny deterministic tie-breaker so equal evaluations don't behave like “random”.
150
164
  // Prefer:
@@ -169,6 +183,16 @@ class Search {
169
183
  if (this.useOptimizations && this.transpositionTable) {
170
184
  this.transpositionTable.store(board.zobristHash, baseDepth, bestScore, TranspositionTable_1.TTEntryType.EXACT, bestMove);
171
185
  }
186
+ // Debug output
187
+ if (debugRoot && debugMoves.length > 0) {
188
+ console.log('\n=== ROOT SEARCH DEBUG (depth=' + baseDepth + ') ===');
189
+ debugMoves.sort((a, b) => b.score - a.score);
190
+ debugMoves.forEach((m, i) => {
191
+ const marker = i === 0 ? ' ← BEST' : '';
192
+ console.log(` ${m.move}: ${m.score}${marker}`);
193
+ });
194
+ console.log('===================================\n');
195
+ }
172
196
  return {
173
197
  move: bestMove,
174
198
  score: bestScore,
@@ -193,7 +217,8 @@ class Search {
193
217
  const initialScore = wasCapture
194
218
  ? Evaluator_1.Evaluator.evaluate(testBoard, playerColor)
195
219
  : null;
196
- const score = -this.alphaBeta(testBoard, playerColor, baseDepth, extendedDepth, 1, wasCapture, initialScore, Evaluator_1.SCORE_MIN, Evaluator_1.SCORE_MAX);
220
+ // Note: alphaBeta handles minimax internally, don't negate
221
+ const score = this.alphaBeta(testBoard, playerColor, baseDepth, extendedDepth, 1, wasCapture, initialScore, Evaluator_1.SCORE_MIN, Evaluator_1.SCORE_MAX);
197
222
  if (score > bestScore) {
198
223
  bestScore = score;
199
224
  bestMove = move;
@@ -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;;;;;GAKG;;;AAEH,oCAAuF;AACvF,yDAA8E;AAC9E,2DAAuD;AACvD,2CAA8D;AAE9D,6DAAuE;AACvE,iDAAyD;AACzD,2DAA0D;AAE1D;;GAEG;AACH,MAAa,MAAM;IACP,aAAa,GAAW,CAAC,CAAC;IAC1B,kBAAkB,CAA4B;IAC9C,WAAW,CAAc;IACzB,gBAAgB,GAAY,IAAI,CAAC;IAEzC,YAAY,WAAmB,EAAE;QAC7B,6BAA6B;QAC7B,IAAI,CAAC,kBAAkB,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,uCAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAW,CAAC;QACxF,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAgB;QAC7B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CACR,KAAoB,EACpB,SAAiB,EACjB,aAAqB;QAErB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;QAE/B,2BAA2B;QAC3B,MAAM,KAAK,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,CAAC,iBAAiB;QAClC,CAAC;QAED,IAAI,QAAQ,GAAiB,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,SAAS,GAAG,qBAAS,CAAC;QAE1B,mDAAmD;QACnD,kDAAkD;QAClD,IAAI,IAAI,CAAC,gBAAgB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,CACZ,KAAK,EACL,WAAW,EACX,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,aAAa,CAAC,EAClC,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB;YAC3D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAEX,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB;YACtC,CAAC,CAAC,IAAA,yBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC;QAEhB,+DAA+D;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,4BAA4B;QACrD,MAAM,UAAU,GAA2C,EAAE,CAAC;QAElE,wBAAwB;QACpB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,+DAA+D;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,IAAA,iCAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEnC,0CAA0C;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YAE5C,qDAAqD;YACrD,MAAM,YAAY,GAAG,UAAU;gBAC3B,CAAC,CAAC,qBAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC;YAEX,2DAA2D;YAC3D,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC1D,0DAA0D;gBAC1D,OAAO;oBACH,IAAI;oBACJ,KAAK,EAAE,qBAAS;oBAChB,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,IAAI,CAAC,aAAa;iBACpC,CAAC;YACN,CAAC;YAED,qDAAqD;YACrD,8EAA8E;YAC9E,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;gBAE9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,wDAAwD;oBACxD,SAAS;gBACb,CAAC;YACL,CAAC;YAED,mBAAmB;YACnB,2EAA2E;YAC3E,qFAAqF;YACrF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CACxB,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,CAAC,EAAE,YAAY;YACf,UAAU,EACV,YAAY,EACZ,qBAAS,EACT,qBAAS,CACZ,CAAC;YAEF,kFAAkF;YAClF,6FAA6F;YAC7F,+EAA+E;YAC/E,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,WAAW,KAAK,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAa,CAAC,KAAK,CAAC;YACtG,MAAM,kBAAkB,GAAG,IAAA,iCAAgB,EAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;YACxF,IAAI,kBAAkB,EAAE,CAAC;gBACrB,uDAAuD;gBACvD,sFAAsF;gBACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC5B,MAAM,OAAO,GAAG,QAAQ,KAAK,aAAK,CAAC,WAAW,IAAI,QAAQ,KAAK,aAAK,CAAC,WAAW,CAAC;gBACjF,MAAM,MAAM,GAAG,QAAQ,KAAK,aAAK,CAAC,UAAU,IAAI,QAAQ,KAAK,aAAK,CAAC,UAAU,CAAC;gBAC9E,MAAM,QAAQ,GAAG,QAAQ,KAAK,aAAK,CAAC,YAAY,IAAI,QAAQ,KAAK,aAAK,CAAC,YAAY,CAAC;gBACpF,MAAM,QAAQ,GAAG,QAAQ,KAAK,aAAK,CAAC,YAAY,IAAI,QAAQ,KAAK,aAAK,CAAC,YAAY,CAAC;gBACpF,MAAM,MAAM,GAAG,QAAQ,KAAK,aAAK,CAAC,UAAU,IAAI,QAAQ,KAAK,aAAK,CAAC,UAAU,CAAC;gBAC9E,MAAM,MAAM,GAAG,QAAQ,KAAK,aAAK,CAAC,UAAU,IAAI,QAAQ,KAAK,aAAK,CAAC,UAAU,CAAC;gBAE9E,sEAAsE;gBACtE,8CAA8C;gBAC9C,4CAA4C;gBAC5C,uGAAuG;gBACvG,gFAAgF;gBAChF,iHAAiH;gBACjH,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,UAAU,IAAI,OAAO,CAAC;gBAC1B,CAAC;YACL,CAAC;YAED,6CAA6C;YAC7C,+FAA+F;YAC/F,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,EAAE,CAAC;gBAClC,UAAU,IAAI,GAAG,CAAC;YACtB,CAAC;YAED,gBAAgB;YAChB,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAE,oCAAoC;gBAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,GAAG,QAAQ,GAAG,QAAQ,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,oBAAoB;YACpB,wFAAwF;YACxF,UAAU;YACV,cAAc;YACd,gBAAgB;YAChB,YAAY;YACZ,MAAM,UAAU,GACZ,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhC,MAAM,cAAc,GAChB,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAE,QAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/C,kFAAkF;YAClF,qCAAqC;YACpC,IAAY,CAAC,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;YAEjD,IAAI,UAAU,GAAG,SAAS,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;gBACtF,SAAS,GAAG,UAAU,CAAC;gBACvB,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CACzB,KAAK,CAAC,WAAW,EACjB,SAAS,EACT,SAAS,EACT,gCAAW,CAAC,KAAK,EACjB,QAAQ,CACX,CAAC;QACN,CAAC;QAED,eAAe;QACf,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;YACrE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,WAAW,CACf,KAAoB,EACpB,WAA0B,EAC1B,SAAiB,EACjB,aAAqB,EACrB,KAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB;YAClC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,YAAY,GAAG,IAAA,yBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,QAAQ,GAAiB,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,SAAS,GAAG,qBAAS,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,IAAA,iCAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,UAAU;gBAC3B,CAAC,CAAC,qBAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC;YAEX,2DAA2D;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CACxB,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,CAAC,EACD,UAAU,EACV,YAAY,EACZ,qBAAS,EACT,qBAAS,CACZ,CAAC;YAEF,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;gBACpB,SAAS,GAAG,KAAK,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;QACL,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CACzB,KAAK,CAAC,WAAW,EACjB,SAAS,EACT,SAAS,EACT,gCAAW,CAAC,KAAK,EACjB,QAAQ,CACX,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,SAAS,CACb,KAAoB,EACpB,eAA8B,EAC9B,SAAiB,EACjB,aAAqB,EACrB,KAAa,EACb,UAAmB,EACnB,YAA0B,EAC1B,KAAY,EACZ,IAAW;QAEX,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,mEAAmE;QACnE,4CAA4C;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC;QAE1B,wBAAwB;QACxB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,qBAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CACzC,KAAK,CAAC,WAAW,EACjB,SAAS,GAAG,KAAK,GAAG,CAAC,EACrB,KAAK,EACL,IAAI,CACP,CAAC;YAEF,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,SAAS,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACpD,wBAAwB;gBACxB,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAW,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,OAAO,CAAC,KAAK,CAAC;gBACzB,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAW,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACpE,OAAO,OAAO,CAAC,KAAK,CAAC;gBACzB,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,KAAK,gCAAW,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;oBACrE,OAAO,OAAO,CAAC,KAAK,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;QAED,4CAA4C;QAC5C,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,MAAM,OAAO,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;QAErC,mDAAmD;QACnD,IAAI,KAAK,GAAG,aAAa,IAAI,OAAO,EAAE,CAAC;YACnC,YAAY,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,6CAA6C;aACxC,IAAI,KAAK,GAAG,SAAS,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC;YAClE,YAAY,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,YAAY,CAAC;YACxB,CAAC;YACD,OAAO,qBAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACtD,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC,CAAC;QAExC,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB;YAC3D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QAEX,iCAAiC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB;YACtC,CAAC,CAAC,IAAA,yBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;YACpD,CAAC,CAAC,KAAK,CAAC;QAEZ,8CAA8C;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;QACpD,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAC,qBAAS,CAAC;QACrD,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,mBAAmB;QACnB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,eAAe;gBAAE,MAAM;YAE3B,+DAA+D;YAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACxC,IAAA,iCAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAEnC,sCAAsC;YACtC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;YAEhD,6BAA6B;YAC7B,MAAM,gBAAgB,GAAG,cAAc;gBACnC,CAAC,CAAC,qBAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC;YAEX,mBAAmB;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CACxB,SAAS,EACT,eAAe,EACf,SAAS,EACT,aAAa,EACb,KAAK,GAAG,CAAC,EACT,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,IAAI,CACP,CAAC;YAEF,6BAA6B;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,qBAAS,GAAG,GAAG,EAAE,CAAC;gBACrC,eAAe,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,+BAA+B;YAC/B,IAAI,YAAY,EAAE,CAAC;gBACf,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACJ,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;oBACpB,SAAS,GAAG,KAAK,CAAC;oBAClB,QAAQ,GAAG,IAAI,CAAC;gBACpB,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAED,oBAAoB;YACpB,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBAChB,sDAAsD;gBACtD,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,CAAC,QAAQ;YACnB,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,IAAI,QAAQ,EAAE,CAAC;YAC/D,IAAI,SAAsB,CAAC;YAC3B,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBAC7B,SAAS,GAAG,gCAAW,CAAC,WAAW,CAAC;YACxC,CAAC;iBAAM,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;gBACnC,SAAS,GAAG,gCAAW,CAAC,WAAW,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACJ,SAAS,GAAG,gCAAW,CAAC,KAAK,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,KAAK,CACzB,KAAK,CAAC,WAAW,EACjB,SAAS,GAAG,KAAK,GAAG,CAAC,EACrB,SAAS,EACT,SAAS,EACT,QAAQ,CACX,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,KAAoB;QAClC,OAAO;YACH,OAAO,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;YACrC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE;YAC3C,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC;IACN,CAAC;CACJ;AApgBD,wBAogBC"}
package/dist/index.d.ts CHANGED
@@ -73,7 +73,7 @@ export declare class Game {
73
73
  /**
74
74
  * Make an AI move (v1 compatible - returns only the move)
75
75
  *
76
- * @param level - AI level (1-5, default 3)
76
+ * @param level - AI level (1-6, default 3)
77
77
  * @returns The played move object (e.g., {"E2": "E4"})
78
78
  */
79
79
  aiMove(level?: number): HistoryEntry;
@@ -81,9 +81,9 @@ export declare class Game {
81
81
  * Make an AI move and return both move and board state
82
82
  *
83
83
  * @param options - Optional configuration object
84
- * @param options.level - AI difficulty level (1-5, default: 3)
84
+ * @param options.level - AI difficulty level (1-6, default: 3)
85
85
  * @param options.play - Whether to apply the move to the game (default: true). If false, only returns the move without modifying game state.
86
- * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 16 MB Node.js, 2 MB browser)
86
+ * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 8 MB Node.js, 4 MB browser)
87
87
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
88
88
  */
89
89
  ai(options?: {
@@ -129,7 +129,7 @@ export declare function move(config: BoardConfig | string, from: string, to: str
129
129
  * Make an AI move (v1 compatible - returns only the move)
130
130
  *
131
131
  * @param config - Board configuration or FEN string
132
- * @param level - AI level (1-5, default 3)
132
+ * @param level - AI level (1-6, default 3)
133
133
  * @returns The played move object (e.g., {"E2": "E4"})
134
134
  */
135
135
  export declare function aiMove(config: BoardConfig | string, level?: number): HistoryEntry;
@@ -138,9 +138,9 @@ export declare function aiMove(config: BoardConfig | string, level?: number): Hi
138
138
  *
139
139
  * @param config - Board configuration or FEN string
140
140
  * @param options - Optional configuration object
141
- * @param options.level - AI difficulty level (1-5, default: 3)
141
+ * @param options.level - AI difficulty level (1-6, default: 3)
142
142
  * @param options.play - Whether to apply the move to the game (default: true). If false, only returns the move without modifying game state.
143
- * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 16 MB Node.js, 2 MB browser)
143
+ * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 8 MB Node.js, 4 MB browser)
144
144
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
145
145
  */
146
146
  export declare function ai(config: BoardConfig | string, options?: {
package/dist/index.js CHANGED
@@ -191,13 +191,13 @@ class Game {
191
191
  /**
192
192
  * Make an AI move (v1 compatible - returns only the move)
193
193
  *
194
- * @param level - AI level (1-5, default 3)
194
+ * @param level - AI level (1-6, default 3)
195
195
  * @returns The played move object (e.g., {"E2": "E4"})
196
196
  */
197
197
  aiMove(level = 3) {
198
198
  // Validate level
199
- if (level < 1 || level > 5) {
200
- throw new Error('AI level must be between 1 and 5');
199
+ if (level < 1 || level > 6) {
200
+ throw new Error('AI level must be between 1 and 6');
201
201
  }
202
202
  // Find best move
203
203
  const bestMove = this.aiEngine.findBestMove(this.board, level);
@@ -218,9 +218,9 @@ class Game {
218
218
  * Make an AI move and return both move and board state
219
219
  *
220
220
  * @param options - Optional configuration object
221
- * @param options.level - AI difficulty level (1-5, default: 3)
221
+ * @param options.level - AI difficulty level (1-6, default: 3)
222
222
  * @param options.play - Whether to apply the move to the game (default: true). If false, only returns the move without modifying game state.
223
- * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 16 MB Node.js, 2 MB browser)
223
+ * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 8 MB Node.js, 4 MB browser)
224
224
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
225
225
  */
226
226
  ai(options = {}) {
@@ -231,8 +231,8 @@ class Game {
231
231
  const defaultSize = (0, environment_1.getRecommendedTTSize)(level);
232
232
  const ttSizeMB = options.ttSizeMB === 0 ? 0 : Math.max(0.25, Math.min(256, options.ttSizeMB ?? defaultSize));
233
233
  // Validate level
234
- if (level < 1 || level > 5) {
235
- throw new Error('AI level must be between 1 and 5');
234
+ if (level < 1 || level > 6) {
235
+ throw new Error('AI level must be between 1 and 6');
236
236
  }
237
237
  // Find best move
238
238
  const bestMove = this.aiEngine.findBestMove(this.board, level, ttSizeMB);
@@ -329,7 +329,7 @@ function move(config, from, to) {
329
329
  * Make an AI move (v1 compatible - returns only the move)
330
330
  *
331
331
  * @param config - Board configuration or FEN string
332
- * @param level - AI level (1-5, default 3)
332
+ * @param level - AI level (1-6, default 3)
333
333
  * @returns The played move object (e.g., {"E2": "E4"})
334
334
  */
335
335
  function aiMove(config, level = 3) {
@@ -341,9 +341,9 @@ function aiMove(config, level = 3) {
341
341
  *
342
342
  * @param config - Board configuration or FEN string
343
343
  * @param options - Optional configuration object
344
- * @param options.level - AI difficulty level (1-5, default: 3)
344
+ * @param options.level - AI difficulty level (1-6, default: 3)
345
345
  * @param options.play - Whether to apply the move to the game (default: true). If false, only returns the move without modifying game state.
346
- * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 16 MB Node.js, 2 MB browser)
346
+ * @param options.ttSizeMB - Transposition table size in MB (0 to disable, 0.25-256). Default: auto-scaled by level (e.g., level 3: 8 MB Node.js, 4 MB browser)
347
347
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
348
348
  */
349
349
  function ai(config, options = {}) {
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import { InternalMove } from './move.types';
5
5
  /**
6
- * AI difficulty level (1-5)
6
+ * AI difficulty level (1-6)
7
7
  */
8
- export type AILevel = 1 | 2 | 3 | 4 | 5;
8
+ export type AILevel = 1 | 2 | 3 | 4 | 5 | 6;
9
9
  /**
10
10
  * Search depth
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ai.types.d.ts","sourceRoot":"","sources":["../../src/types/ai.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;CACf;AAID;;GAEG;AACH,oBAAY,WAAW;IACnB,KAAK,IAAI,CAAO,cAAc;IAC9B,UAAU,IAAI,CAAE,0BAA0B;IAC1C,UAAU,IAAI;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACf;AAID;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,EAAE,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAID;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;IAChB,iBAAiB,EAAE,KAAK,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC;IACrB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"ai.types.d.ts","sourceRoot":"","sources":["../../src/types/ai.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;CACf;AAID;;GAEG;AACH,oBAAY,WAAW;IACnB,KAAK,IAAI,CAAO,cAAc;IAC9B,UAAU,IAAI,CAAE,0BAA0B;IAC1C,UAAU,IAAI;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACf;AAID;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,EAAE,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAID;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,KAAK,CAAC;IAChB,iBAAiB,EAAE,KAAK,CAAC;IACzB,aAAa,EAAE,KAAK,CAAC;IACrB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC7B"}
@@ -17,8 +17,8 @@ export declare function isBrowserEnvironment(): boolean;
17
17
  /**
18
18
  * Get default transposition table size based on environment
19
19
  *
20
- * Node.js: 16 MB (ample memory available)
21
- * Browser: 1 MB (more conservative for web/mobile)
20
+ * Node.js: 8 MB (ample memory available)
21
+ * Browser: 4 MB (more conservative for web/mobile)
22
22
  *
23
23
  * @returns Recommended TT size in MB
24
24
  */
@@ -26,7 +26,7 @@ export declare function getDefaultTTSize(): number;
26
26
  /**
27
27
  * Get recommended TT size for a given AI level and environment
28
28
  *
29
- * @param level - AI difficulty level (1-5)
29
+ * @param level - AI difficulty level (1-6)
30
30
  * @returns Recommended TT size in MB
31
31
  */
32
32
  export declare function getRecommendedTTSize(level: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsB1D"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwB1D"}
@@ -30,42 +30,44 @@ function isBrowserEnvironment() {
30
30
  /**
31
31
  * Get default transposition table size based on environment
32
32
  *
33
- * Node.js: 16 MB (ample memory available)
34
- * Browser: 1 MB (more conservative for web/mobile)
33
+ * Node.js: 8 MB (ample memory available)
34
+ * Browser: 4 MB (more conservative for web/mobile)
35
35
  *
36
36
  * @returns Recommended TT size in MB
37
37
  */
38
38
  function getDefaultTTSize() {
39
- return isNodeEnvironment() ? 16 : 1;
39
+ return isNodeEnvironment() ? 8 : 4;
40
40
  }
41
41
  /**
42
42
  * Get recommended TT size for a given AI level and environment
43
43
  *
44
- * @param level - AI difficulty level (1-5)
44
+ * @param level - AI difficulty level (1-6)
45
45
  * @returns Recommended TT size in MB
46
46
  */
47
47
  function getRecommendedTTSize(level) {
48
48
  if (isNodeEnvironment()) {
49
49
  // Node.js - more generous memory allocation
50
50
  const nodeSizes = {
51
- 1: 2, // Level 1: 2 MB
52
- 2: 4, // Level 2: 4 MB
53
- 3: 16, // Level 3: 16 MB (default)
54
- 4: 32, // Level 4: 32 MB
55
- 5: 64, // Level 5: 64 MB
51
+ 1: 1, // Level 1: 1 MB
52
+ 2: 2, // Level 2: 2 MB
53
+ 3: 8, // Level 3: 8 MB (default)
54
+ 4: 16, // Level 4: 16 MB
55
+ 5: 32, // Level 5: 32 MB
56
+ 6: 64, // Level 6: 64 MB
56
57
  };
57
- return nodeSizes[level] ?? 16;
58
+ return nodeSizes[level] ?? 8;
58
59
  }
59
60
  else {
60
61
  // Browser - modern-device-friendly allocation (reasonable for 2024+ devices)
61
62
  const browserSizes = {
62
- 1: 1, // Level 1: 1 MB (lightweight, older devices)
63
- 2: 2, // Level 2: 2 MB (mobile-friendly)
64
- 3: 8, // Level 3: 8 MB (balanced default - appropriate for modern browsers)
65
- 4: 16, // Level 4: 16 MB (strong performance)
66
- 5: 32, // Level 5: 32 MB (maximum strength)
63
+ 1: 0.5, // Level 1: 0.5 MB (lightweight, older devices)
64
+ 2: 1, // Level 2: 1 MB (mobile-friendly)
65
+ 3: 4, // Level 3: 4 MB (balanced default - appropriate for modern browsers)
66
+ 4: 8, // Level 4: 8 MB (strong performance)
67
+ 5: 16, // Level 5: 16 MB (very strong play)
68
+ 6: 32, // Level 6: 32 MB (maximum strength)
67
69
  };
68
- return browserSizes[level] ?? 8;
70
+ return browserSizes[level] ?? 4;
69
71
  }
70
72
  }
71
73
  //# sourceMappingURL=environment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,8CAOC;AAOD,oDAEC;AAUD,4CAEC;AAQD,oDAsBC;AA/DD;;;;GAIG;AACH,SAAgB,iBAAiB;IAC7B,qCAAqC;IACrC,OAAO,CACH,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ,IAAI,IAAI;QACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAChC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAChC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB;IAC5B,OAAO,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAC9C,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACtB,4CAA4C;QAC5C,MAAM,SAAS,GAA2B;YACtC,CAAC,EAAE,CAAC,EAAI,gBAAgB;YACxB,CAAC,EAAE,CAAC,EAAI,gBAAgB;YACxB,CAAC,EAAE,EAAE,EAAG,2BAA2B;YACnC,CAAC,EAAE,EAAE,EAAG,iBAAiB;YACzB,CAAC,EAAE,EAAE,EAAG,iBAAiB;SAC5B,CAAC;QACF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,6EAA6E;QAC7E,MAAM,YAAY,GAA2B;YACzC,CAAC,EAAE,CAAC,EAAK,6CAA6C;YACtD,CAAC,EAAE,CAAC,EAAK,kCAAkC;YAC3C,CAAC,EAAE,CAAC,EAAK,qEAAqE;YAC9E,CAAC,EAAE,EAAE,EAAI,sCAAsC;YAC/C,CAAC,EAAE,EAAE,EAAI,oCAAoC;SAChD,CAAC;QACF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,8CAOC;AAOD,oDAEC;AAUD,4CAEC;AAQD,oDAwBC;AAjED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC7B,qCAAqC;IACrC,OAAO,CACH,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,QAAQ,IAAI,IAAI;QACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAChC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAChC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB;IAC5B,OAAO,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAC9C,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACtB,4CAA4C;QAC5C,MAAM,SAAS,GAA2B;YACtC,CAAC,EAAE,CAAC,EAAI,gBAAgB;YACxB,CAAC,EAAE,CAAC,EAAI,gBAAgB;YACxB,CAAC,EAAE,CAAC,EAAI,0BAA0B;YAClC,CAAC,EAAE,EAAE,EAAG,iBAAiB;YACzB,CAAC,EAAE,EAAE,EAAG,iBAAiB;YACzB,CAAC,EAAE,EAAE,EAAG,iBAAiB;SAC5B,CAAC;QACF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACJ,6EAA6E;QAC7E,MAAM,YAAY,GAA2B;YACzC,CAAC,EAAE,GAAG,EAAG,+CAA+C;YACxD,CAAC,EAAE,CAAC,EAAK,kCAAkC;YAC3C,CAAC,EAAE,CAAC,EAAK,qEAAqE;YAC9E,CAAC,EAAE,CAAC,EAAK,qCAAqC;YAC9C,CAAC,EAAE,EAAE,EAAI,oCAAoC;YAC7C,CAAC,EAAE,EAAE,EAAI,oCAAoC;SAChD,CAAC;QACF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-chess-engine",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "Simple and fast Node.js chess engine without dependencies",
5
5
  "keywords": [
6
6
  "chess",
@@ -15,6 +15,7 @@
15
15
  "scripts": {
16
16
  "build": "tsc",
17
17
  "build:watch": "tsc --watch",
18
+ "benchmark": "npm run build && node scripts/benchmark-levels.mjs",
18
19
  "clean": "rm -rf dist",
19
20
  "prebuild": "npm run clean",
20
21
  "test": "jest",