shogiops 0.2.9 → 0.6.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 (114) hide show
  1. package/README.md +6 -7
  2. package/attacks.js +7 -7
  3. package/attacks.js.map +1 -1
  4. package/board.d.ts +3 -0
  5. package/board.js +31 -0
  6. package/board.js.map +1 -1
  7. package/compat.d.ts +6 -24
  8. package/compat.js +17 -173
  9. package/compat.js.map +1 -1
  10. package/debug.js +30 -56
  11. package/debug.js.map +1 -1
  12. package/hand.d.ts +38 -0
  13. package/hand.js +74 -0
  14. package/hand.js.map +1 -0
  15. package/hash.d.ts +4 -3
  16. package/hash.js +9 -9
  17. package/hash.js.map +1 -1
  18. package/index.d.ts +13 -10
  19. package/index.js +14 -15
  20. package/index.js.map +1 -1
  21. package/{csa.d.ts → notation/csa/csa.d.ts} +9 -9
  22. package/{csa.js → notation/csa/csa.js} +52 -56
  23. package/notation/csa/csa.js.map +1 -0
  24. package/notation/japanese.d.ts +3 -0
  25. package/notation/japanese.js +65 -0
  26. package/notation/japanese.js.map +1 -0
  27. package/{kif.d.ts → notation/kif/kif.d.ts} +10 -9
  28. package/{kif.js → notation/kif/kif.js} +86 -84
  29. package/notation/kif/kif.js.map +1 -0
  30. package/{kifHandicaps.d.ts → notation/kif/kifHandicaps.d.ts} +0 -0
  31. package/{kifHandicaps.js → notation/kif/kifHandicaps.js} +5 -0
  32. package/notation/kif/kifHandicaps.js.map +1 -0
  33. package/notation/kitaoKawasaki.d.ts +3 -0
  34. package/notation/kitaoKawasaki.js +30 -0
  35. package/notation/kitaoKawasaki.js.map +1 -0
  36. package/notation/kitaokawasaki.d.ts +0 -0
  37. package/notation/kitaokawasaki.js +2 -0
  38. package/notation/kitaokawasaki.js.map +1 -0
  39. package/notation/notationUtil.d.ts +12 -0
  40. package/{kifUtil.js → notation/notationUtil.js} +43 -32
  41. package/notation/notationUtil.js.map +1 -0
  42. package/notation/western.d.ts +3 -0
  43. package/notation/western.js +27 -0
  44. package/notation/western.js.map +1 -0
  45. package/notation/westernEngine.d.ts +3 -0
  46. package/notation/westernEngine.js +27 -0
  47. package/notation/westernEngine.js.map +1 -0
  48. package/package.json +51 -36
  49. package/setup.d.ts +2 -32
  50. package/setup.js +3 -74
  51. package/setup.js.map +1 -1
  52. package/sfen.d.ts +33 -0
  53. package/sfen.js +201 -0
  54. package/sfen.js.map +1 -0
  55. package/shogi.d.ts +14 -7
  56. package/shogi.js +109 -106
  57. package/shogi.js.map +1 -1
  58. package/squareSet.d.ts +1 -5
  59. package/squareSet.js +0 -13
  60. package/squareSet.js.map +1 -1
  61. package/src/board.ts +34 -0
  62. package/src/compat.ts +18 -197
  63. package/src/debug.ts +26 -56
  64. package/src/hand.ts +94 -0
  65. package/src/hash.ts +8 -7
  66. package/src/index.ts +16 -12
  67. package/src/{csa.ts → notation/csa/csa.ts} +50 -51
  68. package/src/notation/japanese.ts +74 -0
  69. package/src/{kif.ts → notation/kif/kif.ts} +77 -78
  70. package/src/{kifHandicaps.ts → notation/kif/kifHandicaps.ts} +5 -0
  71. package/src/notation/kitaoKawasaki.ts +24 -0
  72. package/src/{kifUtil.ts → notation/notationUtil.ts} +37 -28
  73. package/src/notation/western.ts +21 -0
  74. package/src/notation/westernEngine.ts +21 -0
  75. package/src/setup.ts +4 -91
  76. package/src/sfen.ts +190 -0
  77. package/src/shogi.ts +75 -75
  78. package/src/squareSet.ts +1 -18
  79. package/src/transform.ts +3 -1
  80. package/src/types.ts +13 -16
  81. package/src/util.ts +8 -73
  82. package/src/variant.ts +44 -3
  83. package/src/variantUtil.ts +160 -0
  84. package/transform.js +3 -1
  85. package/transform.js.map +1 -1
  86. package/types.d.ts +3 -7
  87. package/types.js +13 -14
  88. package/types.js.map +1 -1
  89. package/util.d.ts +4 -7
  90. package/util.js +9 -60
  91. package/util.js.map +1 -1
  92. package/variant.d.ts +12 -1
  93. package/variant.js +38 -3
  94. package/variant.js.map +1 -1
  95. package/variantUtil.d.ts +13 -0
  96. package/variantUtil.js +160 -0
  97. package/variantUtil.js.map +1 -0
  98. package/csa.js.map +0 -1
  99. package/csaUtil.d.ts +0 -3
  100. package/csaUtil.js +0 -21
  101. package/csaUtil.js.map +0 -1
  102. package/fen.d.ts +0 -32
  103. package/fen.js +0 -197
  104. package/fen.js.map +0 -1
  105. package/kif.js.map +0 -1
  106. package/kifHandicaps.js.map +0 -1
  107. package/kifUtil.d.ts +0 -9
  108. package/kifUtil.js.map +0 -1
  109. package/san.d.ts +0 -6
  110. package/san.js +0 -135
  111. package/san.js.map +0 -1
  112. package/src/csaUtil.ts +0 -15
  113. package/src/fen.ts +0 -183
  114. package/src/san.ts +0 -136
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/hand.d.ts ADDED
@@ -0,0 +1,38 @@
1
+ import { Role } from './types';
2
+ export declare class Hand {
3
+ pawn: number;
4
+ lance: number;
5
+ knight: number;
6
+ silver: number;
7
+ gold: number;
8
+ bishop: number;
9
+ rook: number;
10
+ tokin: number;
11
+ promotedlance: number;
12
+ promotedknight: number;
13
+ promotedsilver: number;
14
+ horse: number;
15
+ dragon: number;
16
+ king: number;
17
+ private constructor();
18
+ static empty(): Hand;
19
+ clone(): Hand;
20
+ equals(other: Hand): boolean;
21
+ add(other: Hand): Hand;
22
+ nonEmpty(): boolean;
23
+ isEmpty(): boolean;
24
+ count(): number;
25
+ [Symbol.iterator](): Iterator<[Role, number]>;
26
+ }
27
+ export declare class Hands {
28
+ gote: Hand;
29
+ sente: Hand;
30
+ constructor(gote: Hand, sente: Hand);
31
+ static empty(): Hands;
32
+ clone(): Hands;
33
+ equals(other: Hands): boolean;
34
+ add(other: Hands): Hands;
35
+ count(): number;
36
+ isEmpty(): boolean;
37
+ nonEmpty(): boolean;
38
+ }
package/hand.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hands = exports.Hand = void 0;
4
+ const types_1 = require("./types");
5
+ // Hand alone can store anything
6
+ // let the variants decide what to store and what not
7
+ class Hand {
8
+ constructor() { }
9
+ static empty() {
10
+ const m = new Hand();
11
+ for (const role of types_1.ROLES)
12
+ m[role] = 0;
13
+ return m;
14
+ }
15
+ clone() {
16
+ const m = new Hand();
17
+ for (const role of types_1.ROLES)
18
+ m[role] = this[role];
19
+ return m;
20
+ }
21
+ equals(other) {
22
+ return types_1.ROLES.every(role => this[role] === other[role]);
23
+ }
24
+ add(other) {
25
+ const m = new Hand();
26
+ for (const role of types_1.ROLES)
27
+ m[role] = this[role] + other[role];
28
+ return m;
29
+ }
30
+ nonEmpty() {
31
+ return types_1.ROLES.some(role => this[role] > 0);
32
+ }
33
+ isEmpty() {
34
+ return !this.nonEmpty();
35
+ }
36
+ count() {
37
+ return types_1.ROLES.map(role => this[role]).reduce((acc, cur) => acc + cur);
38
+ }
39
+ *[Symbol.iterator]() {
40
+ for (const role of types_1.ROLES.filter(r => this[r] > 0)) {
41
+ yield [role, this[role]];
42
+ }
43
+ }
44
+ }
45
+ exports.Hand = Hand;
46
+ class Hands {
47
+ constructor(gote, sente) {
48
+ this.gote = gote;
49
+ this.sente = sente;
50
+ }
51
+ static empty() {
52
+ return new Hands(Hand.empty(), Hand.empty());
53
+ }
54
+ clone() {
55
+ return new Hands(this.gote.clone(), this.sente.clone());
56
+ }
57
+ equals(other) {
58
+ return this.gote.equals(other.gote) && this.sente.equals(other.sente);
59
+ }
60
+ add(other) {
61
+ return new Hands(this.gote.add(other.gote), this.sente.add(other.sente));
62
+ }
63
+ count() {
64
+ return this.gote.count() + this.sente.count();
65
+ }
66
+ isEmpty() {
67
+ return this.gote.isEmpty() && this.sente.isEmpty();
68
+ }
69
+ nonEmpty() {
70
+ return !this.isEmpty();
71
+ }
72
+ }
73
+ exports.Hands = Hands;
74
+ //# sourceMappingURL=hand.js.map
package/hand.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hand.js","sourceRoot":"","sources":["src/hand.ts"],"names":[],"mappings":"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"}
package/hash.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { Board } from './board';
2
- import { Setup, MaterialSide, Material } from './setup';
2
+ import { Setup } from './setup';
3
+ import { Hand, Hands } from './hand';
3
4
  export declare function fxhash32(word: number, state?: number): number;
4
5
  export declare function hashBoard(board: Board, state?: number): number;
5
- export declare function hashMaterialSide(side: MaterialSide, state?: number): number;
6
- export declare function hashMaterial(material: Material, state?: number): number;
6
+ export declare function hashHand(hand: Hand, state?: number): number;
7
+ export declare function hashHands(hands: Hands, state?: number): number;
7
8
  export declare function hashSetup(setup: Setup, state?: number): number;
package/hash.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hashSetup = exports.hashMaterial = exports.hashMaterialSide = exports.hashBoard = exports.fxhash32 = void 0;
3
+ exports.hashSetup = exports.hashHands = exports.hashHand = exports.hashBoard = exports.fxhash32 = void 0;
4
4
  const types_1 = require("./types");
5
5
  function rol32(n, left) {
6
6
  return (n << left) | (n >>> (32 - left));
@@ -16,21 +16,21 @@ function hashBoard(board, state = 0) {
16
16
  return state;
17
17
  }
18
18
  exports.hashBoard = hashBoard;
19
- function hashMaterialSide(side, state = 0) {
20
- for (const role of types_1.POCKET_ROLES)
21
- state = fxhash32(side[role], state);
19
+ function hashHand(hand, state = 0) {
20
+ for (const role of types_1.ROLES)
21
+ state = fxhash32(hand[role], state);
22
22
  return state;
23
23
  }
24
- exports.hashMaterialSide = hashMaterialSide;
25
- function hashMaterial(material, state = 0) {
24
+ exports.hashHand = hashHand;
25
+ function hashHands(hands, state = 0) {
26
26
  for (const color of types_1.COLORS)
27
- state = hashMaterialSide(material[color], state);
27
+ state = hashHand(hands[color], state);
28
28
  return state;
29
29
  }
30
- exports.hashMaterial = hashMaterial;
30
+ exports.hashHands = hashHands;
31
31
  function hashSetup(setup, state = 0) {
32
32
  state = hashBoard(setup.board, state);
33
- state = hashMaterial(setup.pockets, state);
33
+ state = hashHands(setup.hands, state);
34
34
  if (setup.turn === 'sente')
35
35
  state = fxhash32(1, state);
36
36
  return state;
package/hash.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["src/hash.ts"],"names":[],"mappings":";;;AAAA,mCAAsD;AAItD,SAAS,KAAK,CAAC,CAAS,EAAE,IAAY;IACpC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAK,GAAG,CAAC;IAC/C,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,KAAK,MAAM,IAAI,IAAI,aAAK;QACtB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC;AALD,8BAKC;AAED,SAAgB,gBAAgB,CAAC,IAAkB,EAAE,KAAK,GAAG,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,oBAAY;QAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,4CAGC;AAED,SAAgB,YAAY,CAAC,QAAkB,EAAE,KAAK,GAAG,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,cAAM;QAAE,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,oCAGC;AAED,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAK,GAAG,CAAC;IAC/C,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,8BAKC"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["src/hash.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAKxC,SAAS,KAAK,CAAC,CAAS,EAAE,IAAY;IACpC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAK,GAAG,CAAC;IAC/C,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,KAAK,MAAM,IAAI,IAAI,aAAK;QACtB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC;AALD,8BAKC;AAED,SAAgB,QAAQ,CAAC,IAAU,EAAE,KAAK,GAAG,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,aAAK;QAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,4BAGC;AAED,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAK,GAAG,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,cAAM;QAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,8BAGC;AAED,SAAgB,SAAS,CAAC,KAAY,EAAE,KAAK,GAAG,CAAC;IAC/C,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,8BAKC"}
package/index.d.ts CHANGED
@@ -1,19 +1,22 @@
1
- export { FILE_NAMES, RANK_NAMES, FileName, RankName, Square, SquareName, BySquare, Color, COLORS, ByColor, Role, ROLES, POCKET_ROLES, PROMOTABLE_ROLES, ByRole, Piece, NormalMove, DropMove, Move, isDrop, isNormal, Rules, RULES, Outcome, } from './types';
2
- export { charToRole, defined, makeSquare, makeUsi, opposite, parseSquare, parseUsi, roleToChar, squareFile, squareRank, } from './util';
1
+ export { FILE_NAMES, RANK_NAMES, FileName, RankName, Square, SquareName, BySquare, Color, COLORS, ByColor, Role, ROLES, ByRole, Piece, NormalMove, DropMove, Move, isDrop, isNormal, Rules, RULES, Outcome, } from './types';
2
+ export { stringToRole, defined, makeSquare, makeUsi, opposite, parseSquare, parseUsi, roleToString, squareFile, squareRank, } from './util';
3
3
  export { SquareSet } from './squareSet';
4
4
  export { attacks, between, bishopAttacks, kingAttacks, knightAttacks, pawnAttacks, lanceAttacks, silverAttacks, goldAttacks, horseAttacks, dragonAttacks, ray, rookAttacks, } from './attacks';
5
5
  export { Board } from './board';
6
- export { Material, MaterialSide, Setup, defaultSetup } from './setup';
6
+ export { Setup, defaultSetup } from './setup';
7
7
  export { IllegalSetup, Shogi, Position, PositionError, Context } from './shogi';
8
8
  export * as compat from './compat';
9
9
  export * as debug from './debug';
10
- export * as fen from './fen';
11
- export * as handicaps from './kifHandicaps';
10
+ export * as sfen from './sfen';
11
+ export * as handicaps from './notation/kif/kifHandicaps';
12
+ export * as hand from './hand';
12
13
  export * as hash from './hash';
13
- export * as kif from './kif';
14
- export * as kifUtil from './kifUtil';
15
- export * as csa from './csa';
16
- export * as csaUtil from './csaUtil';
17
- export * as san from './san';
14
+ export * as japanese from './notation/japanese';
15
+ export * as kitaoKawasaki from './notation/kitaoKawasaki';
16
+ export * as western from './notation/western';
17
+ export * as westernEngine from './notation/westernEngine';
18
+ export * as kif from './notation/kif/kif';
19
+ export * as csa from './notation/csa/csa';
18
20
  export * as transform from './transform';
19
21
  export * as variant from './variant';
22
+ export * as variantUtil from './variantUtil';
package/index.js CHANGED
@@ -1,26 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.csaUtil = exports.csa = exports.kifUtil = exports.kif = exports.hash = exports.handicaps = exports.fen = exports.debug = exports.compat = exports.PositionError = exports.Position = exports.Shogi = exports.IllegalSetup = exports.defaultSetup = exports.MaterialSide = exports.Material = exports.Board = exports.rookAttacks = exports.ray = exports.dragonAttacks = exports.horseAttacks = exports.goldAttacks = exports.silverAttacks = exports.lanceAttacks = exports.pawnAttacks = exports.knightAttacks = exports.kingAttacks = exports.bishopAttacks = exports.between = exports.attacks = exports.SquareSet = exports.squareRank = exports.squareFile = exports.roleToChar = exports.parseUsi = exports.parseSquare = exports.opposite = exports.makeUsi = exports.makeSquare = exports.defined = exports.charToRole = exports.RULES = exports.isNormal = exports.isDrop = exports.PROMOTABLE_ROLES = exports.POCKET_ROLES = exports.ROLES = exports.COLORS = exports.RANK_NAMES = exports.FILE_NAMES = void 0;
4
- exports.variant = exports.transform = exports.san = void 0;
3
+ exports.transform = exports.csa = exports.kif = exports.westernEngine = exports.western = exports.kitaoKawasaki = exports.japanese = exports.hash = exports.hand = exports.handicaps = exports.sfen = exports.debug = exports.compat = exports.PositionError = exports.Position = exports.Shogi = exports.IllegalSetup = exports.defaultSetup = exports.Board = exports.rookAttacks = exports.ray = exports.dragonAttacks = exports.horseAttacks = exports.goldAttacks = exports.silverAttacks = exports.lanceAttacks = exports.pawnAttacks = exports.knightAttacks = exports.kingAttacks = exports.bishopAttacks = exports.between = exports.attacks = exports.SquareSet = exports.squareRank = exports.squareFile = exports.roleToString = exports.parseUsi = exports.parseSquare = exports.opposite = exports.makeUsi = exports.makeSquare = exports.defined = exports.stringToRole = exports.RULES = exports.isNormal = exports.isDrop = exports.ROLES = exports.COLORS = exports.RANK_NAMES = exports.FILE_NAMES = void 0;
4
+ exports.variantUtil = exports.variant = void 0;
5
5
  var types_1 = require("./types");
6
6
  Object.defineProperty(exports, "FILE_NAMES", { enumerable: true, get: function () { return types_1.FILE_NAMES; } });
7
7
  Object.defineProperty(exports, "RANK_NAMES", { enumerable: true, get: function () { return types_1.RANK_NAMES; } });
8
8
  Object.defineProperty(exports, "COLORS", { enumerable: true, get: function () { return types_1.COLORS; } });
9
9
  Object.defineProperty(exports, "ROLES", { enumerable: true, get: function () { return types_1.ROLES; } });
10
- Object.defineProperty(exports, "POCKET_ROLES", { enumerable: true, get: function () { return types_1.POCKET_ROLES; } });
11
- Object.defineProperty(exports, "PROMOTABLE_ROLES", { enumerable: true, get: function () { return types_1.PROMOTABLE_ROLES; } });
12
10
  Object.defineProperty(exports, "isDrop", { enumerable: true, get: function () { return types_1.isDrop; } });
13
11
  Object.defineProperty(exports, "isNormal", { enumerable: true, get: function () { return types_1.isNormal; } });
14
12
  Object.defineProperty(exports, "RULES", { enumerable: true, get: function () { return types_1.RULES; } });
15
13
  var util_1 = require("./util");
16
- Object.defineProperty(exports, "charToRole", { enumerable: true, get: function () { return util_1.charToRole; } });
14
+ Object.defineProperty(exports, "stringToRole", { enumerable: true, get: function () { return util_1.stringToRole; } });
17
15
  Object.defineProperty(exports, "defined", { enumerable: true, get: function () { return util_1.defined; } });
18
16
  Object.defineProperty(exports, "makeSquare", { enumerable: true, get: function () { return util_1.makeSquare; } });
19
17
  Object.defineProperty(exports, "makeUsi", { enumerable: true, get: function () { return util_1.makeUsi; } });
20
18
  Object.defineProperty(exports, "opposite", { enumerable: true, get: function () { return util_1.opposite; } });
21
19
  Object.defineProperty(exports, "parseSquare", { enumerable: true, get: function () { return util_1.parseSquare; } });
22
20
  Object.defineProperty(exports, "parseUsi", { enumerable: true, get: function () { return util_1.parseUsi; } });
23
- Object.defineProperty(exports, "roleToChar", { enumerable: true, get: function () { return util_1.roleToChar; } });
21
+ Object.defineProperty(exports, "roleToString", { enumerable: true, get: function () { return util_1.roleToString; } });
24
22
  Object.defineProperty(exports, "squareFile", { enumerable: true, get: function () { return util_1.squareFile; } });
25
23
  Object.defineProperty(exports, "squareRank", { enumerable: true, get: function () { return util_1.squareRank; } });
26
24
  var squareSet_1 = require("./squareSet");
@@ -42,8 +40,6 @@ Object.defineProperty(exports, "rookAttacks", { enumerable: true, get: function
42
40
  var board_1 = require("./board");
43
41
  Object.defineProperty(exports, "Board", { enumerable: true, get: function () { return board_1.Board; } });
44
42
  var setup_1 = require("./setup");
45
- Object.defineProperty(exports, "Material", { enumerable: true, get: function () { return setup_1.Material; } });
46
- Object.defineProperty(exports, "MaterialSide", { enumerable: true, get: function () { return setup_1.MaterialSide; } });
47
43
  Object.defineProperty(exports, "defaultSetup", { enumerable: true, get: function () { return setup_1.defaultSetup; } });
48
44
  var shogi_1 = require("./shogi");
49
45
  Object.defineProperty(exports, "IllegalSetup", { enumerable: true, get: function () { return shogi_1.IllegalSetup; } });
@@ -52,14 +48,17 @@ Object.defineProperty(exports, "Position", { enumerable: true, get: function ()
52
48
  Object.defineProperty(exports, "PositionError", { enumerable: true, get: function () { return shogi_1.PositionError; } });
53
49
  exports.compat = require("./compat");
54
50
  exports.debug = require("./debug");
55
- exports.fen = require("./fen");
56
- exports.handicaps = require("./kifHandicaps");
51
+ exports.sfen = require("./sfen");
52
+ exports.handicaps = require("./notation/kif/kifHandicaps");
53
+ exports.hand = require("./hand");
57
54
  exports.hash = require("./hash");
58
- exports.kif = require("./kif");
59
- exports.kifUtil = require("./kifUtil");
60
- exports.csa = require("./csa");
61
- exports.csaUtil = require("./csaUtil");
62
- exports.san = require("./san");
55
+ exports.japanese = require("./notation/japanese");
56
+ exports.kitaoKawasaki = require("./notation/kitaoKawasaki");
57
+ exports.western = require("./notation/western");
58
+ exports.westernEngine = require("./notation/westernEngine");
59
+ exports.kif = require("./notation/kif/kif");
60
+ exports.csa = require("./notation/csa/csa");
63
61
  exports.transform = require("./transform");
64
62
  exports.variant = require("./variant");
63
+ exports.variantUtil = require("./variantUtil");
65
64
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";;;;AAAA,iCAyBiB;AAxBf,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AAOV,+FAAA,MAAM,OAAA;AAGN,8FAAA,KAAK,OAAA;AACL,qGAAA,YAAY,OAAA;AACZ,yGAAA,gBAAgB,OAAA;AAMhB,+FAAA,MAAM,OAAA;AACN,iGAAA,QAAQ,OAAA;AAER,8FAAA,KAAK,OAAA;AAIP,+BAWgB;AAVd,kGAAA,UAAU,OAAA;AACV,+FAAA,OAAO,OAAA;AACP,kGAAA,UAAU,OAAA;AACV,+FAAA,OAAO,OAAA;AACP,gGAAA,QAAQ,OAAA;AACR,mGAAA,WAAW,OAAA;AACX,gGAAA,QAAQ,OAAA;AACR,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AAGZ,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,qCAcmB;AAbjB,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,8FAAA,GAAG,OAAA;AACH,sGAAA,WAAW,OAAA;AAGb,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,iCAAsE;AAA7D,iGAAA,QAAQ,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAS,qGAAA,YAAY,OAAA;AAEpD,iCAAgF;AAAvE,qGAAA,YAAY,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AAErD,qCAAmC;AAEnC,mCAAiC;AAEjC,+BAA6B;AAE7B,8CAA4C;AAE5C,iCAA+B;AAE/B,+BAA6B;AAE7B,uCAAqC;AAErC,+BAA6B;AAE7B,uCAAqC;AAErC,+BAA6B;AAE7B,2CAAyC;AAEzC,uCAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";;;;AAAA,iCAuBiB;AAtBf,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AAOV,+FAAA,MAAM,OAAA;AAGN,8FAAA,KAAK,OAAA;AAML,+FAAA,MAAM,OAAA;AACN,iGAAA,QAAQ,OAAA;AAER,8FAAA,KAAK,OAAA;AAIP,+BAWgB;AAVd,oGAAA,YAAY,OAAA;AACZ,+FAAA,OAAO,OAAA;AACP,kGAAA,UAAU,OAAA;AACV,+FAAA,OAAO,OAAA;AACP,gGAAA,QAAQ,OAAA;AACR,mGAAA,WAAW,OAAA;AACX,gGAAA,QAAQ,OAAA;AACR,oGAAA,YAAY,OAAA;AACZ,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AAGZ,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,qCAcmB;AAbjB,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,8FAAA,GAAG,OAAA;AACH,sGAAA,WAAW,OAAA;AAGb,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,iCAA8C;AAA9B,qGAAA,YAAY,OAAA;AAE5B,iCAAgF;AAAvE,qGAAA,YAAY,OAAA;AAAE,8FAAA,KAAK,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AAErD,qCAAmC;AAEnC,mCAAiC;AAEjC,iCAA+B;AAE/B,2DAAyD;AAEzD,iCAA+B;AAE/B,iCAA+B;AAE/B,kDAAgD;AAEhD,4DAA0D;AAE1D,gDAA8C;AAE9C,4DAA0D;AAE1D,4CAA0C;AAE1C,4CAA0C;AAE1C,2CAAyC;AAEzC,uCAAqC;AAErC,+CAA6C"}
@@ -1,25 +1,25 @@
1
1
  import { Result } from '@badrap/result';
2
- import { Board } from './board';
3
- import { MaterialSide, Setup } from './setup';
4
- import { Position } from './shogi';
5
- import { Move } from './types';
2
+ import { Board } from '../../board';
3
+ import { Setup } from '../../setup';
4
+ import { Position } from '../../shogi';
5
+ import { Move } from '../../types';
6
+ import { Hand } from '../../hand';
6
7
  export declare enum InvalidCsa {
7
8
  CSA = "ERR_CSA",
8
9
  Board = "ERR_BOARD",
9
10
  Handicap = "ERR_HANDICAP",
10
- Pockets = "ERR_POCKETS",
11
+ Hands = "ERR_HANDS",
11
12
  AdditionalInfo = "ERR_ADDITIONAL"
12
13
  }
13
14
  export declare class CsaError extends Error {
14
15
  }
15
16
  export declare function makeCsaHeader(setup: Setup): string;
16
17
  export declare function makeCsaBoard(board: Board): string;
17
- export declare function makeCsaPocket(material: MaterialSide, prefix: string): string;
18
+ export declare function makeCsaHand(hand: Hand, prefix: string): string;
18
19
  export declare function parseCsaHeader(csa: string): Result<Setup, CsaError>;
19
20
  export declare function parseCsaHandicap(handicap: string): Result<Board, CsaError>;
20
21
  export declare function parseTags(csa: string): [string, string][];
22
+ export declare function normalizedCsaLines(csa: string): string[];
21
23
  export declare function parseCsaMove(pos: Position, csaMove: string): Move | undefined;
22
24
  export declare function parseCsaMoves(pos: Position, csaMoves: string[]): Move[];
23
- export declare function makeCsaMove(pos: Position, move: Move): string;
24
- export declare function makeCsaVariation(pos: Position, variation: Move[]): string;
25
- export declare function normalizedCsaLines(csa: string): string[];
25
+ export declare function makeCsaMove(pos: Position, move: Move): string | undefined;
@@ -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.makeCsaMove = exports.parseCsaMoves = exports.parseCsaMove = exports.normalizedCsaLines = 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
- const board_1 = require("./board");
6
- const setup_1 = require("./setup");
7
- const types_1 = require("./types");
8
- const util_1 = require("./util");
9
- const csaUtil_1 = require("./csaUtil");
5
+ const board_1 = require("../../board");
6
+ const types_1 = require("../../types");
7
+ const util_1 = require("../../util");
8
+ const hand_1 = require("../../hand");
9
+ const variantUtil_1 = require("../../variantUtil");
10
+ const notationUtil_1 = require("../notationUtil");
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,8 +27,8 @@ 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
33
  ]
32
34
  .filter(p => p.length > 0)
@@ -44,7 +46,7 @@ function makeCsaBoard(board) {
44
46
  csaBoard += ' * ';
45
47
  else {
46
48
  const colorSign = piece.color === 'gote' ? '-' : '+';
47
- csaBoard += colorSign + util_1.roleToCsa(piece.role);
49
+ csaBoard += colorSign + (0, util_1.roleToCsa)(piece.role);
48
50
  }
49
51
  if (file === 8 && rank > 0)
50
52
  csaBoard += '\n';
@@ -53,30 +55,31 @@ function makeCsaBoard(board) {
53
55
  return csaBoard;
54
56
  }
55
57
  exports.makeCsaBoard = makeCsaBoard;
56
- function makeCsaPocket(material, prefix) {
57
- if (material.isEmpty())
58
+ function makeCsaHand(hand, prefix) {
59
+ if (hand.isEmpty())
58
60
  return '';
59
61
  return (prefix +
60
- types_1.POCKET_ROLES.map(role => {
61
- const r = util_1.roleToCsa(role);
62
- const n = material[role];
62
+ (0, variantUtil_1.handRoles)('shogi')
63
+ .map(role => {
64
+ const r = (0, util_1.roleToCsa)(role);
65
+ const n = hand[role];
63
66
  return ('00' + r).repeat(Math.min(n, 18));
64
67
  })
65
68
  .filter(p => p.length > 0)
66
69
  .join(''));
67
70
  }
68
- exports.makeCsaPocket = makeCsaPocket;
71
+ exports.makeCsaHand = makeCsaHand;
69
72
  // Import
70
73
  function parseCsaHeader(csa) {
71
74
  const lines = normalizedCsaLines(csa);
72
75
  const handicap = lines.find(l => l.startsWith('PI'));
73
76
  const isWholeBoard = lines.some(l => l.startsWith('P1'));
74
- const baseBoard = util_1.defined(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
77
+ const baseBoard = (0, util_1.defined)(handicap) && !isWholeBoard ? parseCsaHandicap(handicap) : parseCsaBoard(lines.filter(l => /^P\d/.test(l)));
75
78
  const turn = lines.some(l => l === '-') ? 'gote' : 'sente';
76
79
  return baseBoard.chain(board => {
77
80
  const setup = {
78
81
  board: board,
79
- pockets: setup_1.Material.empty(),
82
+ hands: hand_1.Hands.empty(),
80
83
  turn: turn,
81
84
  fullmoves: 1,
82
85
  };
@@ -88,8 +91,8 @@ function parseCsaHandicap(handicap) {
88
91
  const splitted = handicap.substring(2).match(/.{4}/g) || [];
89
92
  const intitalBoard = board_1.Board.default();
90
93
  for (const s of splitted) {
91
- const sq = csaUtil_1.parseCsaSquare(s.substring(0, 2));
92
- if (util_1.defined(sq)) {
94
+ const sq = (0, notationUtil_1.parseNumberSquare)(s.substring(0, 2));
95
+ if ((0, util_1.defined)(sq)) {
93
96
  intitalBoard.take(sq);
94
97
  }
95
98
  else {
@@ -114,8 +117,8 @@ function parseCsaBoard(csaBoard) {
114
117
  else {
115
118
  if (file >= 9 || rank < 0)
116
119
  return result_1.Result.err(new CsaError(InvalidCsa.Board));
117
- const role = util_1.csaToRole(s.substring(1));
118
- if (util_1.defined(role)) {
120
+ const role = (0, util_1.csaToRole)(s.substring(1));
121
+ if ((0, util_1.defined)(role) && (0, variantUtil_1.allRoles)('shogi').includes(role)) {
119
122
  const square = file + rank * 9;
120
123
  const piece = { role: role, color: (s.startsWith('-') ? 'gote' : 'sente') };
121
124
  board.set(square, piece);
@@ -132,13 +135,14 @@ function parseAdditions(initialSetup, additions) {
132
135
  for (const line of additions) {
133
136
  const color = line[1] === '+' ? 'sente' : 'gote';
134
137
  for (const sp of line.substring(2).match(/.{4}/g) || []) {
135
- const sq = csaUtil_1.parseCsaSquare(sp.substring(0, 2));
136
- const role = util_1.csaToRole(sp.substring(2, 4));
137
- if (util_1.defined(sq) && util_1.defined(role)) {
138
- if (sq === 0) {
139
- if (!types_1.POCKET_ROLES.includes(role))
140
- return result_1.Result.err(new CsaError(InvalidCsa.Pockets));
141
- initialSetup.pockets[color][role]++;
138
+ const sqString = sp.substring(0, 2);
139
+ const sq = (0, notationUtil_1.parseNumberSquare)(sqString);
140
+ const role = (0, util_1.csaToRole)(sp.substring(2, 4));
141
+ if (((0, util_1.defined)(sq) || sqString === '00') && (0, util_1.defined)(role)) {
142
+ if (!(0, util_1.defined)(sq)) {
143
+ if (!(0, variantUtil_1.handRoles)('shogi').includes(role))
144
+ return result_1.Result.err(new CsaError(InvalidCsa.Hands));
145
+ initialSetup.hands[color][role]++;
142
146
  }
143
147
  else {
144
148
  initialSetup.board.set(sq, { role: role, color: color });
@@ -156,6 +160,14 @@ function parseTags(csa) {
156
160
  .map(l => l.substring(1).split(/:(.*)/, 2));
157
161
  }
158
162
  exports.parseTags = parseTags;
163
+ function normalizedCsaLines(csa) {
164
+ return csa
165
+ .replace(/,/g, '\n')
166
+ .split(/[\r\n]+/)
167
+ .map(l => l.trim())
168
+ .filter(l => l);
169
+ }
170
+ exports.normalizedCsaLines = normalizedCsaLines;
159
171
  //
160
172
  // CSA MOVES
161
173
  //
@@ -170,16 +182,16 @@ function parseCsaMove(pos, csaMove) {
170
182
  if (!match)
171
183
  return;
172
184
  const drop = {
173
- role: util_1.csaToRole(match[2]),
174
- to: csaUtil_1.parseCsaSquare(match[1]),
185
+ role: (0, util_1.csaToRole)(match[2]),
186
+ to: (0, notationUtil_1.parseNumberSquare)(match[1]),
175
187
  };
176
188
  return drop;
177
189
  }
178
- const role = util_1.csaToRole(match[3]);
179
- const orig = csaUtil_1.parseCsaSquare(match[1]);
190
+ const role = (0, util_1.csaToRole)(match[3]);
191
+ const orig = (0, notationUtil_1.parseNumberSquare)(match[1]);
180
192
  return {
181
193
  from: orig,
182
- to: csaUtil_1.parseCsaSquare(match[2]),
194
+ to: (0, notationUtil_1.parseNumberSquare)(match[2]),
183
195
  promotion: ((_a = pos.board.get(orig)) === null || _a === void 0 ? void 0 : _a.role) !== role,
184
196
  };
185
197
  }
@@ -199,33 +211,17 @@ function parseCsaMoves(pos, csaMoves) {
199
211
  exports.parseCsaMoves = parseCsaMoves;
200
212
  // Making CSA formatted moves
201
213
  function makeCsaMove(pos, move) {
202
- if (types_1.isDrop(move)) {
203
- return '00' + csaUtil_1.makeCsaSquare(move.to) + util_1.roleToCsa(move.role);
214
+ if ((0, types_1.isDrop)(move)) {
215
+ return '00' + (0, notationUtil_1.makeNumberSquare)(move.to) + (0, util_1.roleToCsa)(move.role);
204
216
  }
205
217
  else {
206
218
  const role = pos.board.getRole(move.from);
207
219
  if (!role)
208
- return '%ERROR';
209
- return csaUtil_1.makeCsaSquare(move.from) + csaUtil_1.makeCsaSquare(move.to) + util_1.roleToCsa(move.promotion ? util_1.promote(role) : role);
220
+ return undefined;
221
+ return ((0, notationUtil_1.makeNumberSquare)(move.from) +
222
+ (0, notationUtil_1.makeNumberSquare)(move.to) +
223
+ (0, util_1.roleToCsa)(move.promotion ? (0, variantUtil_1.promote)('shogi')(role) : role));
210
224
  }
211
225
  }
212
226
  exports.makeCsaMove = makeCsaMove;
213
- function makeCsaVariation(pos, variation) {
214
- pos = pos.clone();
215
- const line = [];
216
- for (const m of variation) {
217
- line.push((pos.turn === 'sente' ? '+' : '-') + makeCsaMove(pos, m));
218
- pos.play(m);
219
- }
220
- return line.join('\n');
221
- }
222
- exports.makeCsaVariation = makeCsaVariation;
223
- function normalizedCsaLines(csa) {
224
- return csa
225
- .replace(/,/g, '\n')
226
- .split(/[\r\n]+/)
227
- .map(l => l.trim())
228
- .filter(l => l);
229
- }
230
- exports.normalizedCsaLines = normalizedCsaLines;
231
227
  //# sourceMappingURL=csa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csa.js","sourceRoot":"","sources":["../../src/notation/csa/csa.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Position } from '../shogi';
2
+ import { Move, Square } from '../types';
3
+ export declare function makeJapaneseMove(pos: Position, move: Move, lastDest?: Square): string | undefined;