js-chess-engine 2.4.0 → 2.4.1

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
@@ -202,7 +202,7 @@ Params:
202
202
  - `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).
203
203
  - `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`.
204
204
  - `ttSizeMB` number (_optional_) - Transposition table size in MB (0 to disable, min 0.25 MB). Default: **auto-scaled by AI level**. See [Auto-Scaling Transposition Table](#transposition-table) for details.
205
- - `randomness` number (_optional_) - Centipawns of random noise added to each move's score, causing the engine to occasionally prefer moves with nearly equal scores. Makes games less predictable without significantly degrading play quality. Default: `30`. Set to `0` for fully deterministic play. Reference values: `10` very subtle · `30` default · `80` noticeable · `200` chaotic.
205
+ - `randomness` number (_optional_) - Centipawns of random noise added to each move's score, causing the engine to occasionally prefer moves with nearly equal scores. Makes games less predictable without significantly degrading play quality. Default: `10`. Set to `0` for fully deterministic play. Reference values: `10` default (very subtle) · `30` slight variety · `80` noticeable · `200` chaotic.
206
206
  - `depth` object (_optional_) - Override AI search depth parameters. Omitted fields fall back to the level's defaults (see [Computer AI](#computer-ai) table).
207
207
  - `base` number (_optional_) - Base search depth. Integer > 0.
208
208
  - `extended` number (_optional_) - Max adaptive extension depth. Integer 0-3.
@@ -253,8 +253,8 @@ const result7 = game.ai({ level: 3, depth: { base: 5 } })
253
253
  // Full depth control: deep search, no extensions, no quiescence
254
254
  const result8 = game.ai({ level: 1, depth: { base: 4, extended: 0, check: false, quiescence: 0 } })
255
255
 
256
- // Randomness: vary move selection among nearly-equal scoring moves (default: 30)
257
- const result9 = game.ai({ level: 3 }) // default 30cp noise — slight variety
256
+ // Randomness: vary move selection among nearly-equal scoring moves (default: 10)
257
+ const result9 = game.ai({ level: 3 }) // default 10cp noise — very subtle variety
258
258
  const result10 = game.ai({ level: 3, randomness: 0 }) // fully deterministic
259
259
  const result11 = game.ai({ level: 3, randomness: 80 }) // noticeable variety, casual play
260
260
  ```
@@ -454,8 +454,8 @@ console.log(result2.nodesSearched)
454
454
  // Custom depth overrides
455
455
  const result3 = ai(fen, { level: 3, depth: { base: 5, quiescence: 3 } })
456
456
 
457
- // Randomness: slight variety by default, or disable for deterministic play
458
- const result4 = ai(fen, { level: 3 }) // default 30cp noise
457
+ // Randomness: subtle variety by default, or disable for deterministic play
458
+ const result4 = ai(fen, { level: 3 }) // default 10cp noise
459
459
  const result5 = ai(fen, { level: 3, randomness: 0 }) // fully deterministic
460
460
  ```
461
461
 
@@ -71,7 +71,7 @@ class AIEngine {
71
71
  // Perform search
72
72
  return this.search.findBestMove(board, effectiveDepth, qMaxDepth, checkExtension, {
73
73
  analysis: options.analysis ?? false,
74
- randomness: options.randomness ?? 30,
74
+ randomness: options.randomness ?? 10,
75
75
  });
76
76
  }
77
77
  /**
@@ -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,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,YAAY,GAAG,IAAI;IAqItB,OAAO,CAAC,OAAO;IAiGf,OAAO,CAAC,UAAU;IAoElB;;;;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,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,YAAY,GAAG,IAAI;IAkJtB,OAAO,CAAC,OAAO;IAiGf,OAAO,CAAC,UAAU;IAoElB;;;;OAIG;IACH,OAAO,CAAC,aAAa;CAUxB"}
package/dist/ai/Search.js CHANGED
@@ -54,7 +54,9 @@ class Search {
54
54
  // Populates TT progressively for better move ordering at deeper levels.
55
55
  const ASPIRATION_DELTA = 25;
56
56
  for (let d = 1; d <= baseDepth; d++) {
57
- const collectScores = analysis && d === baseDepth;
57
+ // Collect root scores at final depth: for analysis (accurate) or randomness (PVS ok)
58
+ const collectScores = (d === baseDepth) && (randomness > 0 || analysis);
59
+ const disablePVS = (d === baseDepth) && analysis;
58
60
  // Aspiration window: use previous iteration's score for d >= 4
59
61
  let alpha = Evaluator_1.SCORE_MIN;
60
62
  let beta = Evaluator_1.SCORE_MAX;
@@ -66,7 +68,6 @@ class Search {
66
68
  // Aspiration retry loop
67
69
  let iterBestMove = null;
68
70
  let iterBestScore = Evaluator_1.SCORE_MIN;
69
- let iterRawBestScore = Evaluator_1.SCORE_MIN;
70
71
  let iterScoredMoves = null;
71
72
  while (true) {
72
73
  const pvMove = this.transpositionTable?.getBestMove(board.zobristHash) ?? null;
@@ -89,7 +90,7 @@ class Search {
89
90
  const extension = (this.checkExtension && child.isCheck) ? 1 : 0;
90
91
  let score;
91
92
  // Use PVS at root (but not when collecting analysis scores - need accurate values)
92
- if (moveIndex === 0 || collectScores) {
93
+ if (moveIndex === 0 || disablePVS) {
93
94
  score = -this.negamax(child, d - 1 + extension, -beta, -iterAlpha, 1);
94
95
  }
95
96
  else {
@@ -101,15 +102,11 @@ class Search {
101
102
  }
102
103
  }
103
104
  moveIndex++;
104
- const noisyScore = randomness > 0
105
- ? (score + Math.round(Math.random() * 2 * randomness - randomness))
106
- : score;
107
105
  if (iterScoredMoves) {
108
- iterScoredMoves.push({ move, score: noisyScore });
106
+ iterScoredMoves.push({ move, score });
109
107
  }
110
- if (noisyScore > iterBestScore || iterBestMove === null) {
111
- iterBestScore = noisyScore;
112
- iterRawBestScore = score;
108
+ if (score > iterBestScore || iterBestMove === null) {
109
+ iterBestScore = score;
113
110
  iterBestMove = move;
114
111
  }
115
112
  if (score > iterAlpha)
@@ -117,15 +114,15 @@ class Search {
117
114
  if (iterAlpha >= beta)
118
115
  break;
119
116
  }
120
- // Check aspiration window result (use raw score to avoid noise-induced misfires)
117
+ // Check aspiration window result
121
118
  if (d >= 4 && (alpha > Evaluator_1.SCORE_MIN || beta < Evaluator_1.SCORE_MAX)) {
122
- if (iterRawBestScore <= alpha) {
119
+ if (iterBestScore <= alpha) {
123
120
  // Fail low - widen alpha
124
121
  delta *= 2;
125
122
  alpha = (delta > 400) ? Evaluator_1.SCORE_MIN : Math.max(Evaluator_1.SCORE_MIN, alpha - delta);
126
123
  continue;
127
124
  }
128
- if (iterRawBestScore >= beta) {
125
+ if (iterBestScore >= beta) {
129
126
  // Fail high - widen beta
130
127
  delta *= 2;
131
128
  beta = (delta > 400) ? Evaluator_1.SCORE_MAX : Math.min(Evaluator_1.SCORE_MAX, beta + delta);
@@ -136,13 +133,29 @@ class Search {
136
133
  }
137
134
  if (iterBestMove) {
138
135
  bestMove = iterBestMove;
139
- bestScore = iterRawBestScore;
136
+ bestScore = iterBestScore;
140
137
  }
141
138
  if (iterScoredMoves) {
142
139
  iterScoredMoves.sort((a, b) => b.score - a.score);
143
140
  scoredMoves = iterScoredMoves;
144
141
  }
145
142
  }
143
+ // Apply randomness after search is complete (noise never enters the search tree)
144
+ if (randomness > 0 && scoredMoves && scoredMoves.length > 0) {
145
+ let noisyBestScore = Evaluator_1.SCORE_MIN;
146
+ let noisyBestMove = null;
147
+ for (const entry of scoredMoves) {
148
+ const noisy = (entry.score + Math.round(Math.random() * 2 * randomness - randomness));
149
+ if (noisy > noisyBestScore || noisyBestMove === null) {
150
+ noisyBestScore = noisy;
151
+ noisyBestMove = entry.move;
152
+ }
153
+ }
154
+ if (noisyBestMove) {
155
+ bestMove = noisyBestMove;
156
+ // bestScore remains the raw score of the deterministic best move
157
+ }
158
+ }
146
159
  return bestMove
147
160
  ? { move: bestMove, score: bestScore, depth: baseDepth, nodesSearched: this.nodesSearched, scoredMoves }
148
161
  : null;
@@ -1 +1 @@
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,UAAuD,EAAE;QAEzD,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;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,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,gBAAgB,GAAU,qBAAS,CAAC;YACxC,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,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC;wBAC7B,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAU;wBAC5E,CAAC,CAAC,KAAK,CAAC;oBAEZ,IAAI,eAAe,EAAE,CAAC;wBAClB,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;oBACtD,CAAC;oBAED,IAAI,UAAU,GAAG,aAAa,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;wBACtD,aAAa,GAAG,UAAU,CAAC;wBAC3B,gBAAgB,GAAG,KAAK,CAAC;wBACzB,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,iFAAiF;gBACjF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAS,IAAI,IAAI,GAAG,qBAAS,CAAC,EAAE,CAAC;oBACpD,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;wBAC5B,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,gBAAgB,IAAI,IAAI,EAAE,CAAC;wBAC3B,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,gBAAgB,CAAC;YACjC,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;AAlVD,wBAkVC"}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/ai/Search.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -88,12 +88,12 @@ export declare class Game {
88
88
  * @param options.randomness - Centipawns of random noise added to each move's score at the
89
89
  * root level, causing the engine to occasionally prefer moves with nearly equal scores.
90
90
  * Makes the engine less predictable without significantly degrading play quality.
91
- * Default: 30 (subtle variation). Set to 0 to disable.
91
+ * Default: 10 (very subtle variety). Set to 0 for fully deterministic play.
92
92
  *
93
93
  * Reference values:
94
94
  * 0 – fully deterministic (same position always plays the same move)
95
- * 10 – very subtle (only nearly-identical moves ever swap)
96
- * 30 – default (slight variety; moves within ~½ pawn of best may vary)
95
+ * 10 – very subtle (default; only nearly-identical moves ever swap)
96
+ * 30 – slight variety (moves within ~½ pawn of best may vary)
97
97
  * 80 – noticeable (moves within ~1½ pawns of best may vary; fun casual play)
98
98
  * 200 – chaotic (may play obviously weaker moves; not recommended)
99
99
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
package/dist/index.js CHANGED
@@ -231,12 +231,12 @@ class Game {
231
231
  * @param options.randomness - Centipawns of random noise added to each move's score at the
232
232
  * root level, causing the engine to occasionally prefer moves with nearly equal scores.
233
233
  * Makes the engine less predictable without significantly degrading play quality.
234
- * Default: 30 (subtle variation). Set to 0 to disable.
234
+ * Default: 10 (very subtle variety). Set to 0 for fully deterministic play.
235
235
  *
236
236
  * Reference values:
237
237
  * 0 – fully deterministic (same position always plays the same move)
238
- * 10 – very subtle (only nearly-identical moves ever swap)
239
- * 30 – default (slight variety; moves within ~½ pawn of best may vary)
238
+ * 10 – very subtle (default; only nearly-identical moves ever swap)
239
+ * 30 – slight variety (moves within ~½ pawn of best may vary)
240
240
  * 80 – noticeable (moves within ~1½ pawns of best may vary; fun casual play)
241
241
  * 200 – chaotic (may play obviously weaker moves; not recommended)
242
242
  * @returns Object containing the move and board configuration (current state if play=false, updated state if play=true)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "js-chess-engine",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "Simple and fast Node.js chess engine with configurable AI and no dependencies",
5
5
  "keywords": [
6
6
  "chess",