shogiops 0.2.7 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/LICENSE.txt +0 -0
  2. package/README.md +0 -0
  3. package/attacks.d.ts +0 -0
  4. package/attacks.js +7 -7
  5. package/attacks.js.map +1 -1
  6. package/board.d.ts +3 -0
  7. package/board.js +31 -0
  8. package/board.js.map +1 -1
  9. package/compat.d.ts +6 -24
  10. package/compat.js +15 -171
  11. package/compat.js.map +1 -1
  12. package/csa.d.ts +4 -3
  13. package/csa.js +38 -33
  14. package/csa.js.map +1 -1
  15. package/csaUtil.d.ts +1 -1
  16. package/csaUtil.js +3 -3
  17. package/csaUtil.js.map +1 -1
  18. package/debug.d.ts +0 -0
  19. package/debug.js +29 -55
  20. package/debug.js.map +1 -1
  21. package/fen.d.ts +6 -5
  22. package/fen.js +53 -49
  23. package/fen.js.map +1 -1
  24. package/hand.d.ts +38 -0
  25. package/hand.js +74 -0
  26. package/hand.js.map +1 -0
  27. package/hash.d.ts +4 -3
  28. package/hash.js +9 -9
  29. package/hash.js.map +1 -1
  30. package/index.d.ts +4 -3
  31. package/index.js +3 -7
  32. package/index.js.map +1 -1
  33. package/kif.d.ts +5 -4
  34. package/kif.js +70 -65
  35. package/kif.js.map +1 -1
  36. package/kifHandicaps.d.ts +0 -0
  37. package/kifHandicaps.js +5 -0
  38. package/kifHandicaps.js.map +1 -1
  39. package/kifUtil.d.ts +0 -0
  40. package/kifUtil.js +4 -4
  41. package/kifUtil.js.map +1 -1
  42. package/package.json +9 -5
  43. package/setup.d.ts +2 -32
  44. package/setup.js +3 -74
  45. package/setup.js.map +1 -1
  46. package/shogi.d.ts +14 -7
  47. package/shogi.js +109 -106
  48. package/shogi.js.map +1 -1
  49. package/squareSet.d.ts +1 -5
  50. package/squareSet.js +0 -13
  51. package/squareSet.js.map +1 -1
  52. package/src/attacks.ts +0 -0
  53. package/src/board.ts +34 -0
  54. package/src/compat.ts +18 -197
  55. package/src/csa.ts +29 -21
  56. package/src/csaUtil.ts +3 -2
  57. package/src/debug.ts +25 -55
  58. package/src/fen.ts +42 -35
  59. package/src/hand.ts +94 -0
  60. package/src/hash.ts +8 -7
  61. package/src/index.ts +5 -5
  62. package/src/kif.ts +51 -43
  63. package/src/kifHandicaps.ts +5 -0
  64. package/src/kifUtil.ts +0 -0
  65. package/src/setup.ts +4 -91
  66. package/src/shogi.ts +75 -75
  67. package/src/squareSet.ts +1 -18
  68. package/src/transform.ts +3 -1
  69. package/src/types.ts +13 -16
  70. package/src/util.ts +2 -68
  71. package/src/variant.ts +44 -3
  72. package/src/variantUtil.ts +160 -0
  73. package/transform.d.ts +0 -0
  74. package/transform.js +3 -1
  75. package/transform.js.map +1 -1
  76. package/types.d.ts +3 -7
  77. package/types.js +13 -14
  78. package/types.js.map +1 -1
  79. package/util.d.ts +1 -4
  80. package/util.js +2 -54
  81. package/util.js.map +1 -1
  82. package/variant.d.ts +12 -1
  83. package/variant.js +38 -3
  84. package/variant.js.map +1 -1
  85. package/variantUtil.d.ts +13 -0
  86. package/variantUtil.js +160 -0
  87. package/variantUtil.js.map +1 -0
  88. package/san.d.ts +0 -6
  89. package/san.js +0 -135
  90. package/san.js.map +0 -1
  91. package/src/san.ts +0 -136
package/csa.js CHANGED
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizedCsaLines = exports.makeCsaVariation = exports.makeCsaMove = exports.parseCsaMoves = exports.parseCsaMove = exports.parseTags = exports.parseCsaHandicap = exports.parseCsaHeader = exports.makeCsaPocket = exports.makeCsaBoard = exports.makeCsaHeader = exports.CsaError = exports.InvalidCsa = void 0;
3
+ exports.normalizedCsaLines = exports.makeCsaVariation = exports.makeCsaMove = exports.parseCsaMoves = exports.parseCsaMove = exports.parseTags = exports.parseCsaHandicap = exports.parseCsaHeader = exports.makeCsaHand = exports.makeCsaBoard = exports.makeCsaHeader = exports.CsaError = exports.InvalidCsa = void 0;
4
4
  const result_1 = require("@badrap/result");
5
5
  const board_1 = require("./board");
6
- const setup_1 = require("./setup");
7
6
  const types_1 = require("./types");
8
7
  const util_1 = require("./util");
9
8
  const csaUtil_1 = require("./csaUtil");
9
+ const hand_1 = require("./hand");
10
+ const variantUtil_1 = require("./variantUtil");
11
+ // Olny supports standard shogi no variants
10
12
  //
11
13
  // CSA HEADER
12
14
  //
@@ -15,7 +17,7 @@ var InvalidCsa;
15
17
  InvalidCsa["CSA"] = "ERR_CSA";
16
18
  InvalidCsa["Board"] = "ERR_BOARD";
17
19
  InvalidCsa["Handicap"] = "ERR_HANDICAP";
18
- InvalidCsa["Pockets"] = "ERR_POCKETS";
20
+ InvalidCsa["Hands"] = "ERR_HANDS";
19
21
  InvalidCsa["AdditionalInfo"] = "ERR_ADDITIONAL";
20
22
  })(InvalidCsa = exports.InvalidCsa || (exports.InvalidCsa = {}));
21
23
  class CsaError extends Error {
@@ -25,10 +27,12 @@ exports.CsaError = CsaError;
25
27
  function makeCsaHeader(setup) {
26
28
  return [
27
29
  makeCsaBoard(setup.board),
28
- makeCsaPocket(setup.pockets.sente, 'P+'),
29
- makeCsaPocket(setup.pockets.gote, 'P-'),
30
+ makeCsaHand(setup.hands.sente, 'P+'),
31
+ makeCsaHand(setup.hands.gote, 'P-'),
30
32
  setup.turn === 'gote' ? '-' : '+',
31
- ].join('\n');
33
+ ]
34
+ .filter(p => p.length > 0)
35
+ .join('\n');
32
36
  }
33
37
  exports.makeCsaHeader = makeCsaHeader;
34
38
  function makeCsaBoard(board) {
@@ -42,7 +46,7 @@ function makeCsaBoard(board) {
42
46
  csaBoard += ' * ';
43
47
  else {
44
48
  const colorSign = piece.color === 'gote' ? '-' : '+';
45
- csaBoard += colorSign + (0, util_1.roleToCsa)(piece.role);
49
+ csaBoard += colorSign + util_1.roleToCsa(piece.role);
46
50
  }
47
51
  if (file === 8 && rank > 0)
48
52
  csaBoard += '\n';
@@ -51,30 +55,31 @@ function makeCsaBoard(board) {
51
55
  return csaBoard;
52
56
  }
53
57
  exports.makeCsaBoard = makeCsaBoard;
54
- function makeCsaPocket(material, prefix) {
55
- if (material.isEmpty())
58
+ function makeCsaHand(hand, prefix) {
59
+ if (hand.isEmpty())
56
60
  return '';
57
61
  return (prefix +
58
- types_1.POCKET_ROLES.map(role => {
59
- const r = (0, util_1.roleToCsa)(role);
60
- const n = material[role];
62
+ variantUtil_1.handRoles('shogi')
63
+ .map(role => {
64
+ const r = util_1.roleToCsa(role);
65
+ const n = hand[role];
61
66
  return ('00' + r).repeat(Math.min(n, 18));
62
67
  })
63
68
  .filter(p => p.length > 0)
64
69
  .join(''));
65
70
  }
66
- exports.makeCsaPocket = makeCsaPocket;
71
+ exports.makeCsaHand = makeCsaHand;
67
72
  // Import
68
73
  function parseCsaHeader(csa) {
69
74
  const lines = normalizedCsaLines(csa);
70
75
  const handicap = lines.find(l => l.startsWith('PI'));
71
76
  const isWholeBoard = lines.some(l => l.startsWith('P1'));
72
- const baseBoard = (0, util_1.defined)(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
77
+ const baseBoard = util_1.defined(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
73
78
  const turn = lines.some(l => l === '-') ? 'gote' : 'sente';
74
79
  return baseBoard.chain(board => {
75
80
  const setup = {
76
81
  board: board,
77
- pockets: setup_1.Material.empty(),
82
+ hands: hand_1.Hands.empty(),
78
83
  turn: turn,
79
84
  fullmoves: 1,
80
85
  };
@@ -86,8 +91,8 @@ function parseCsaHandicap(handicap) {
86
91
  const splitted = handicap.substring(2).match(/.{4}/g) || [];
87
92
  const intitalBoard = board_1.Board.default();
88
93
  for (const s of splitted) {
89
- const sq = (0, csaUtil_1.parseCsaSquare)(s.substring(0, 2));
90
- if ((0, util_1.defined)(sq)) {
94
+ const sq = csaUtil_1.parseCsaSquare(s.substring(0, 2));
95
+ if (util_1.defined(sq)) {
91
96
  intitalBoard.take(sq);
92
97
  }
93
98
  else {
@@ -112,8 +117,8 @@ function parseCsaBoard(csaBoard) {
112
117
  else {
113
118
  if (file >= 9 || rank < 0)
114
119
  return result_1.Result.err(new CsaError(InvalidCsa.Board));
115
- const role = (0, util_1.csaToRole)(s.substring(1));
116
- if ((0, util_1.defined)(role)) {
120
+ const role = util_1.csaToRole(s.substring(1));
121
+ if (util_1.defined(role) && variantUtil_1.allRoles('shogi').includes(role)) {
117
122
  const square = file + rank * 9;
118
123
  const piece = { role: role, color: (s.startsWith('-') ? 'gote' : 'sente') };
119
124
  board.set(square, piece);
@@ -130,13 +135,13 @@ function parseAdditions(initialSetup, additions) {
130
135
  for (const line of additions) {
131
136
  const color = line[1] === '+' ? 'sente' : 'gote';
132
137
  for (const sp of line.substring(2).match(/.{4}/g) || []) {
133
- const sq = (0, csaUtil_1.parseCsaSquare)(sp.substring(0, 2));
134
- const role = (0, util_1.csaToRole)(sp.substring(2, 4));
135
- if ((0, util_1.defined)(sq) && (0, util_1.defined)(role)) {
138
+ const sq = csaUtil_1.parseCsaSquare(sp.substring(0, 2));
139
+ const role = util_1.csaToRole(sp.substring(2, 4));
140
+ if (util_1.defined(sq) && util_1.defined(role)) {
136
141
  if (sq === 0) {
137
- if (!types_1.POCKET_ROLES.includes(role))
138
- return result_1.Result.err(new CsaError(InvalidCsa.Pockets));
139
- initialSetup.pockets[color][role]++;
142
+ if (!variantUtil_1.handRoles('shogi').includes(role))
143
+ return result_1.Result.err(new CsaError(InvalidCsa.Hands));
144
+ initialSetup.hands[color][role]++;
140
145
  }
141
146
  else {
142
147
  initialSetup.board.set(sq, { role: role, color: color });
@@ -168,16 +173,16 @@ function parseCsaMove(pos, csaMove) {
168
173
  if (!match)
169
174
  return;
170
175
  const drop = {
171
- role: (0, util_1.csaToRole)(match[2]),
172
- to: (0, csaUtil_1.parseCsaSquare)(match[1]),
176
+ role: util_1.csaToRole(match[2]),
177
+ to: csaUtil_1.parseCsaSquare(match[1]),
173
178
  };
174
179
  return drop;
175
180
  }
176
- const role = (0, util_1.csaToRole)(match[3]);
177
- const orig = (0, csaUtil_1.parseCsaSquare)(match[1]);
181
+ const role = util_1.csaToRole(match[3]);
182
+ const orig = csaUtil_1.parseCsaSquare(match[1]);
178
183
  return {
179
184
  from: orig,
180
- to: (0, csaUtil_1.parseCsaSquare)(match[2]),
185
+ to: csaUtil_1.parseCsaSquare(match[2]),
181
186
  promotion: ((_a = pos.board.get(orig)) === null || _a === void 0 ? void 0 : _a.role) !== role,
182
187
  };
183
188
  }
@@ -197,14 +202,14 @@ function parseCsaMoves(pos, csaMoves) {
197
202
  exports.parseCsaMoves = parseCsaMoves;
198
203
  // Making CSA formatted moves
199
204
  function makeCsaMove(pos, move) {
200
- if ((0, types_1.isDrop)(move)) {
201
- return '00' + (0, csaUtil_1.makeCsaSquare)(move.to) + (0, util_1.roleToCsa)(move.role);
205
+ if (types_1.isDrop(move)) {
206
+ return '00' + csaUtil_1.makeCsaSquare(move.to) + util_1.roleToCsa(move.role);
202
207
  }
203
208
  else {
204
209
  const role = pos.board.getRole(move.from);
205
210
  if (!role)
206
211
  return '%ERROR';
207
- return (0, csaUtil_1.makeCsaSquare)(move.from) + (0, csaUtil_1.makeCsaSquare)(move.to) + (0, util_1.roleToCsa)(move.promotion ? (0, util_1.promote)(role) : role);
212
+ return (csaUtil_1.makeCsaSquare(move.from) + csaUtil_1.makeCsaSquare(move.to) + util_1.roleToCsa(move.promotion ? variantUtil_1.promote('shogi')(role) : role));
208
213
  }
209
214
  }
210
215
  exports.makeCsaMove = makeCsaMove;
package/csa.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"csa.js","sourceRoot":"","sources":["src/csa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csa.js","sourceRoot":"","sources":["src/csa.ts"],"names":[],"mappings":"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"}
package/csaUtil.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Square } from '.';
1
+ import { Square } from './types';
2
2
  export declare function parseCsaSquare(str: string): Square | undefined;
3
3
  export declare function makeCsaSquare(sq: Square): string;
package/csaUtil.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeCsaSquare = exports.parseCsaSquare = void 0;
4
- const _1 = require(".");
4
+ const util_1 = require("./util");
5
5
  function parseCsaSquare(str) {
6
6
  if (str.length !== 2)
7
7
  return;
8
8
  if (str === '00')
9
- return 0; // for pocket
9
+ return 0; // for hand
10
10
  const file = Math.abs(str.charCodeAt(0) - '9'.charCodeAt(0));
11
11
  const rank = Math.abs(str.charCodeAt(1) - '9'.charCodeAt(0));
12
12
  if (file < 0 || file >= 9 || rank < 0 || rank >= 9)
@@ -15,7 +15,7 @@ function parseCsaSquare(str) {
15
15
  }
16
16
  exports.parseCsaSquare = parseCsaSquare;
17
17
  function makeCsaSquare(sq) {
18
- return (9 - (0, _1.squareFile)(sq)).toString() + (9 - (0, _1.squareRank)(sq));
18
+ return (9 - util_1.squareFile(sq)).toString() + (9 - util_1.squareRank(sq));
19
19
  }
20
20
  exports.makeCsaSquare = makeCsaSquare;
21
21
  //# sourceMappingURL=csaUtil.js.map
package/csaUtil.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"csaUtil.js","sourceRoot":"","sources":["src/csaUtil.ts"],"names":[],"mappings":";;;AAAA,wBAAmD;AAEnD,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC7B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC,aAAa;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO;IAC3D,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACzB,CAAC;AAPD,wCAOC;AAED,SAAgB,aAAa,CAAC,EAAU;IACtC,OAAO,CAAC,CAAC,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"csaUtil.js","sourceRoot":"","sources":["src/csaUtil.ts"],"names":[],"mappings":";;;AACA,iCAAgD;AAEhD,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC7B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC,WAAW;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO;IAC3D,OAAO,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;AACzB,CAAC;AAPD,wCAOC;AAED,SAAgB,aAAa,CAAC,EAAU;IACtC,OAAO,CAAC,CAAC,GAAG,iBAAU,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,sCAEC"}
package/debug.d.ts CHANGED
File without changes
package/debug.js CHANGED
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.perft = exports.dests = exports.square = exports.board = exports.piece = exports.squareSet = void 0;
4
- const types_1 = require("./types");
5
4
  const util_1 = require("./util");
6
5
  const fen_1 = require("./fen");
7
- const squareSet_1 = require("./squareSet");
6
+ const variantUtil_1 = require("./variantUtil");
8
7
  function squareSet(squares) {
9
8
  const r = [];
10
9
  for (let y = 8; y >= 0; y--) {
@@ -18,7 +17,7 @@ function squareSet(squares) {
18
17
  }
19
18
  exports.squareSet = squareSet;
20
19
  function piece(piece) {
21
- return (0, fen_1.makePiece)(piece);
20
+ return fen_1.makePiece(piece);
22
21
  }
23
22
  exports.piece = piece;
24
23
  function board(board) {
@@ -36,13 +35,13 @@ function board(board) {
36
35
  }
37
36
  exports.board = board;
38
37
  function square(sq) {
39
- return (0, util_1.makeSquare)(sq);
38
+ return util_1.makeSquare(sq);
40
39
  }
41
40
  exports.square = square;
42
41
  function dests(dests) {
43
42
  const lines = [];
44
43
  for (const [from, to] of dests) {
45
- lines.push(`${(0, util_1.makeSquare)(from)}: ${Array.from(to, square).join(' ')}`);
44
+ lines.push(`${util_1.makeSquare(from)}: ${Array.from(to, square).join(' ')}`);
46
45
  }
47
46
  return lines.join('\n');
48
47
  }
@@ -52,66 +51,41 @@ function perft(pos, depth, log = false) {
52
51
  return 1;
53
52
  const ctx = pos.ctx();
54
53
  const dropDests = pos.allDropDests(ctx);
55
- if (!log && depth === 1 && pos.pockets.isEmpty()) {
56
- // Optimization for leaf nodes.
57
- let nodes = 0;
58
- for (const [from, to] of pos.allDests(ctx)) {
59
- nodes += to.size();
60
- const role = pos.board.getRole(from);
61
- if (types_1.PROMOTABLE_ROLES.includes(role)) {
62
- const promMoves = squareSet_1.SquareSet.promotionZone(pos.turn).has(from)
63
- ? to
64
- : to.intersect(squareSet_1.SquareSet.promotionZone(pos.turn));
65
- const forceProm = role === 'pawn' || role === 'lance'
66
- ? squareSet_1.SquareSet.backrank(pos.turn)
67
- : role === 'knight'
68
- ? squareSet_1.SquareSet.backrank2(pos.turn)
69
- : squareSet_1.SquareSet.empty();
70
- nodes += promMoves.diff(forceProm).size();
71
- }
72
- }
73
- return nodes;
74
- }
75
- else {
76
- let nodes = 0;
77
- for (const [from, dests] of pos.allDests(ctx)) {
78
- for (const to of dests) {
79
- const promotions = [];
80
- const role = pos.board.get(from).role;
81
- const canPromote = types_1.PROMOTABLE_ROLES.includes(role) &&
82
- (squareSet_1.SquareSet.promotionZone(pos.turn).has(to) || squareSet_1.SquareSet.promotionZone(pos.turn).has(from));
83
- if (canPromote) {
84
- promotions.push(true);
85
- if (!(((role === 'pawn' || role === 'lance') && squareSet_1.SquareSet.backrank(pos.turn).has(to)) ||
86
- (role === 'knight' && squareSet_1.SquareSet.backrank2(pos.turn).has(to))))
87
- promotions.push(false);
88
- }
89
- else
54
+ let nodes = 0;
55
+ for (const [from, dests] of pos.allDests(ctx)) {
56
+ for (const to of dests) {
57
+ const promotions = [];
58
+ const piece = pos.board.get(from);
59
+ if (variantUtil_1.pieceCanPromote(pos.rules)(piece, from, to)) {
60
+ promotions.push(true);
61
+ if (!variantUtil_1.pieceInDeadZone(pos.rules)(piece, to))
90
62
  promotions.push(false);
91
- for (const promotion of promotions) {
92
- const child = pos.clone();
93
- const move = { from, to, promotion };
94
- child.play(move);
95
- const children = perft(child, depth - 1, false);
96
- if (log)
97
- console.log((0, util_1.makeUsi)(move), children);
98
- nodes += children;
99
- }
100
63
  }
101
- }
102
- for (const [role, dropDestsOfRole] of dropDests) {
103
- for (const to of dropDestsOfRole) {
64
+ else
65
+ promotions.push(false);
66
+ for (const promotion of promotions) {
104
67
  const child = pos.clone();
105
- const move = { role, to };
68
+ const move = { from, to, promotion };
106
69
  child.play(move);
107
70
  const children = perft(child, depth - 1, false);
108
71
  if (log)
109
- console.log((0, util_1.makeUsi)(move), children);
72
+ console.log(util_1.makeUsi(move), children, '(', depth, ')');
110
73
  nodes += children;
111
74
  }
112
75
  }
113
- return nodes;
114
76
  }
77
+ for (const [role, dropDestsOfRole] of dropDests) {
78
+ for (const to of dropDestsOfRole) {
79
+ const child = pos.clone();
80
+ const move = { role, to };
81
+ child.play(move);
82
+ const children = perft(child, depth - 1, false);
83
+ if (log)
84
+ console.log(util_1.makeUsi(move), children, '(', depth, ')');
85
+ nodes += children;
86
+ }
87
+ }
88
+ return nodes;
115
89
  }
116
90
  exports.perft = perft;
117
91
  //# sourceMappingURL=debug.js.map
package/debug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["src/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["src/debug.ts"],"names":[],"mappings":"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"}
package/fen.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { Result } from '@badrap/result';
2
2
  import { Piece } from './types';
3
3
  import { Board } from './board';
4
- import { Setup, MaterialSide, Material } from './setup';
4
+ import { Setup } from './setup';
5
+ import { Hand, Hands } from './hand';
5
6
  export declare const INITIAL_BOARD_FEN = "lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL";
6
7
  export declare const INITIAL_EPD: string;
7
8
  export declare const INITIAL_FEN: string;
@@ -11,14 +12,14 @@ export declare const EMPTY_FEN: string;
11
12
  export declare enum InvalidFen {
12
13
  Fen = "ERR_FEN",
13
14
  Board = "ERR_BOARD",
14
- Pockets = "ERR_POCKETS",
15
+ Hands = "ERR_HANDS",
15
16
  Turn = "ERR_TURN",
16
17
  Fullmoves = "ERR_FULLMOVES"
17
18
  }
18
19
  export declare class FenError extends Error {
19
20
  }
20
21
  export declare function parseBoardFen(boardPart: string): Result<Board, FenError>;
21
- export declare function parsePockets(pocketPart: string): Result<Material, FenError>;
22
+ export declare function parseHands(handsPart: string): Result<Hands, FenError>;
22
23
  export declare function parseFen(fen: string): Result<Setup, FenError>;
23
24
  interface FenOpts {
24
25
  epd?: boolean;
@@ -26,7 +27,7 @@ interface FenOpts {
26
27
  export declare function parsePiece(str: string): Piece | undefined;
27
28
  export declare function makePiece(piece: Piece): string;
28
29
  export declare function makeBoardFen(board: Board): string;
29
- export declare function makePocket(material: MaterialSide): string;
30
- export declare function makePockets(pocket: Material): string;
30
+ export declare function makeHand(hand: Hand): string;
31
+ export declare function makeHands(hands: Hands): string;
31
32
  export declare function makeFen(setup: Setup, opts?: FenOpts): string;
32
33
  export {};