shogiops 0.11.0 → 0.13.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 (67) hide show
  1. package/README.md +2 -2
  2. package/compat.js +11 -11
  3. package/compat.js.map +1 -1
  4. package/debug.js +3 -3
  5. package/debug.js.map +1 -1
  6. package/handicaps.d.ts +5 -0
  7. package/handicaps.js +307 -0
  8. package/handicaps.js.map +1 -0
  9. package/index.d.ts +4 -3
  10. package/index.js +3 -2
  11. package/index.js.map +1 -1
  12. package/notation/japanese.js +23 -14
  13. package/notation/japanese.js.map +1 -1
  14. package/notation/kif/kif.d.ts +0 -2
  15. package/notation/kif/kif.js +34 -31
  16. package/notation/kif/kif.js.map +1 -1
  17. package/notation/westernEngine.js +5 -5
  18. package/notation/westernEngine.js.map +1 -1
  19. package/package.json +9 -5
  20. package/sfen.d.ts +2 -2
  21. package/sfen.js +9 -7
  22. package/sfen.js.map +1 -1
  23. package/src/compat.ts +11 -11
  24. package/src/debug.ts +3 -3
  25. package/src/handicaps.ts +315 -0
  26. package/src/index.ts +7 -4
  27. package/src/notation/japanese.ts +27 -14
  28. package/src/notation/kif/kif.ts +47 -29
  29. package/src/notation/westernEngine.ts +6 -6
  30. package/src/sfen.ts +9 -7
  31. package/src/types.ts +14 -7
  32. package/src/util.ts +12 -12
  33. package/src/variant/annan.ts +158 -0
  34. package/src/variant/chushogi.ts +11 -3
  35. package/src/variant/minishogi.ts +3 -3
  36. package/src/variant/position.ts +4 -12
  37. package/src/variant/shogi.ts +35 -23
  38. package/src/variant/util.ts +1 -0
  39. package/src/variant/variant.ts +6 -0
  40. package/types.d.ts +13 -7
  41. package/types.js +1 -1
  42. package/types.js.map +1 -1
  43. package/util.d.ts +3 -3
  44. package/util.js +8 -8
  45. package/util.js.map +1 -1
  46. package/variant/annan.d.ts +16 -0
  47. package/variant/annan.js +137 -0
  48. package/variant/annan.js.map +1 -0
  49. package/variant/chushogi.js +8 -3
  50. package/variant/chushogi.js.map +1 -1
  51. package/variant/minishogi.js +3 -3
  52. package/variant/minishogi.js.map +1 -1
  53. package/variant/position.d.ts +0 -1
  54. package/variant/position.js +3 -11
  55. package/variant/position.js.map +1 -1
  56. package/variant/shogi.d.ts +2 -0
  57. package/variant/shogi.js +22 -16
  58. package/variant/shogi.js.map +1 -1
  59. package/variant/util.js +1 -0
  60. package/variant/util.js.map +1 -1
  61. package/variant/variant.d.ts +2 -0
  62. package/variant/variant.js +5 -0
  63. package/variant/variant.js.map +1 -1
  64. package/notation/kif/kifHandicaps.d.ts +0 -2
  65. package/notation/kif/kifHandicaps.js +0 -93
  66. package/notation/kif/kifHandicaps.js.map +0 -1
  67. package/src/notation/kif/kifHandicaps.ts +0 -93
package/README.md CHANGED
@@ -17,9 +17,9 @@ Shogi and operations in TypeScript forked from [chessops](https://github.com/nik
17
17
  - Attacks and rays using hyperbola quintessence
18
18
  - Read and write USI, Japanese, Western and Kitao-Kawasaki move notation
19
19
  - Read and write KIF and CSA notation
20
- - Currently two variants supported - shogi, minishogi. More to come later!
21
- - [Compatibility with lishogi](https://lishogi.org)
20
+ - Currently supported variants - shogi, minishogi, chushogi and annan shogi. More to come later!
22
21
  - [Compatibility with shogiground](https://github.com/WandererXII/shogiground)
22
+ - [Compatibility with lishogi](https://lishogi.org)
23
23
 
24
24
  [File an issue](https://github.com/WandererXII/shogiops/issues/new) to request more or report a bug.
25
25
 
package/compat.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { isDrop } from './types.js';
2
- import { defined, makeSquare, parseSquare, parseUsi } from './util.js';
2
+ import { defined, makeSquareName, parseSquareName, parseUsi } from './util.js';
3
3
  import { secondLionStepDests } from './variant/chushogi.js';
4
4
  export function shogigroundMoveDests(pos) {
5
5
  const result = new Map(), ctx = pos.ctx();
6
6
  for (const [from, squares] of pos.allMoveDests(ctx)) {
7
7
  if (squares.nonEmpty()) {
8
- const d = Array.from(squares, s => makeSquare(s));
9
- result.set(makeSquare(from), d);
8
+ const d = Array.from(squares, s => makeSquareName(s));
9
+ result.set(makeSquareName(from), d);
10
10
  }
11
11
  }
12
12
  return result;
@@ -15,17 +15,17 @@ export function shogigroundDropDests(pos) {
15
15
  const result = new Map(), ctx = pos.ctx();
16
16
  for (const [pieceName, squares] of pos.allDropDests(ctx)) {
17
17
  if (squares.nonEmpty()) {
18
- const d = Array.from(squares, s => makeSquare(s));
18
+ const d = Array.from(squares, s => makeSquareName(s));
19
19
  result.set(pieceName, d);
20
20
  }
21
21
  }
22
22
  return result;
23
23
  }
24
24
  export function shogigroundSecondLionStep(before, initialSq, midSq) {
25
- const result = new Map(), squares = secondLionStepDests(before, parseSquare(initialSq), parseSquare(midSq));
25
+ const result = new Map(), squares = secondLionStepDests(before, parseSquareName(initialSq), parseSquareName(midSq));
26
26
  if (squares.nonEmpty()) {
27
- const d = Array.from(squares, s => makeSquare(s));
28
- result.set(makeSquare(parseSquare(midSq)), d);
27
+ const d = Array.from(squares, s => makeSquareName(s));
28
+ result.set(makeSquareName(parseSquareName(midSq)), d);
29
29
  }
30
30
  return result;
31
31
  }
@@ -35,12 +35,12 @@ export function usiToSquareNames(usi) {
35
35
  }
36
36
  export function moveToSquareNames(move) {
37
37
  return isDrop(move)
38
- ? [makeSquare(move.to)]
38
+ ? [makeSquareName(move.to)]
39
39
  : defined(move.midStep)
40
- ? [makeSquare(move.from), makeSquare(move.midStep), makeSquare(move.to)]
41
- : [makeSquare(move.from), makeSquare(move.to)];
40
+ ? [makeSquareName(move.from), makeSquareName(move.midStep), makeSquareName(move.to)]
41
+ : [makeSquareName(move.from), makeSquareName(move.to)];
42
42
  }
43
43
  export function checksSquareNames(pos) {
44
- return pos.checkSquares().map(s => makeSquare(s));
44
+ return pos.checkSquares().map(s => makeSquareName(s));
45
45
  }
46
46
  //# sourceMappingURL=compat.js.map
package/compat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"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"}
package/debug.js CHANGED
@@ -1,17 +1,17 @@
1
- import { makeSquare, makeUsi, parsePieceName } from './util.js';
1
+ import { makeSquareName, makeUsi, parsePieceName } from './util.js';
2
2
  import { secondLionStepDests } from './variant/chushogi.js';
3
3
  import { pieceCanPromote, pieceForcePromote } from './variant/util.js';
4
4
  export function moveDests(moveDests) {
5
5
  const lines = [];
6
6
  for (const [from, to] of moveDests) {
7
- lines.push(`${makeSquare(from)}: ${Array.from(to, makeSquare).join(' ')}`);
7
+ lines.push(`${makeSquareName(from)}: ${Array.from(to, makeSquareName).join(' ')}`);
8
8
  }
9
9
  return lines.join('\n');
10
10
  }
11
11
  export function dropDests(dropDests) {
12
12
  const lines = [];
13
13
  for (const [pn, to] of dropDests) {
14
- lines.push(`${pn}: ${Array.from(to, makeSquare).join(' ')}`);
14
+ lines.push(`${pn}: ${Array.from(to, makeSquareName).join(' ')}`);
15
15
  }
16
16
  return lines.join('\n');
17
17
  }
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/handicaps.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { Handicap } from './types';
2
+ export declare function findHandicaps(handicapOpt: Partial<Handicap>): Handicap[] | undefined;
3
+ export declare function findHandicap(handicapOpt: Partial<Handicap>): Handicap | undefined;
4
+ export declare function isHandicap(handicapOpt: Partial<Handicap>): boolean;
5
+ export declare const handicaps: Handicap[];
package/handicaps.js ADDED
@@ -0,0 +1,307 @@
1
+ import { defined } from './util';
2
+ export function findHandicaps(handicapOpt) {
3
+ return handicaps.filter(obj => Object.keys(handicapOpt).every(key => {
4
+ if (key === 'sfen' && defined(handicapOpt.sfen))
5
+ return compareSfens(obj.sfen, handicapOpt.sfen);
6
+ else
7
+ return obj[key] === handicapOpt[key];
8
+ }));
9
+ }
10
+ export function findHandicap(handicapOpt) {
11
+ const hs = findHandicaps(handicapOpt);
12
+ return defined(hs) ? hs[0] : undefined;
13
+ }
14
+ export function isHandicap(handicapOpt) {
15
+ return defined(findHandicap(handicapOpt));
16
+ }
17
+ export const handicaps = [
18
+ // standard
19
+ {
20
+ sfen: 'lnsgkgsn1/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
21
+ rules: 'standard',
22
+ japaneseName: '香落ち',
23
+ englishName: 'Lance',
24
+ },
25
+ {
26
+ sfen: '1nsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
27
+ rules: 'standard',
28
+ japaneseName: '右香落ち',
29
+ englishName: 'Right Lance',
30
+ },
31
+ {
32
+ sfen: 'lnsgkgsnl/1r7/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
33
+ rules: 'standard',
34
+ japaneseName: '角落ち',
35
+ englishName: 'Bishop',
36
+ },
37
+ {
38
+ sfen: 'lnsgkgsnl/7b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
39
+ rules: 'standard',
40
+ japaneseName: '飛車落ち',
41
+ englishName: 'Rook',
42
+ },
43
+ {
44
+ sfen: 'lnsgkgsn1/7b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
45
+ rules: 'standard',
46
+ japaneseName: '飛香落ち',
47
+ englishName: 'Rook-Lance',
48
+ },
49
+ {
50
+ sfen: 'lnsgkgsnl/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
51
+ rules: 'standard',
52
+ japaneseName: '二枚落ち',
53
+ englishName: '2-piece',
54
+ },
55
+ {
56
+ sfen: '1nsgkgsn1/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
57
+ rules: 'standard',
58
+ japaneseName: '四枚落ち',
59
+ englishName: '4-piece',
60
+ },
61
+ {
62
+ sfen: '2sgkgs2/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
63
+ rules: 'standard',
64
+ japaneseName: '六枚落ち',
65
+ englishName: '6-piece',
66
+ },
67
+ {
68
+ sfen: '3gkg3/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
69
+ rules: 'standard',
70
+ japaneseName: '八枚落ち',
71
+ englishName: '8-piece',
72
+ },
73
+ {
74
+ sfen: '4k4/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
75
+ rules: 'standard',
76
+ japaneseName: '十枚落ち',
77
+ englishName: '10-piece',
78
+ },
79
+ {
80
+ sfen: '4k4/9/9/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w 3p 1',
81
+ rules: 'standard',
82
+ japaneseName: '歩三兵',
83
+ englishName: '3 Pawns',
84
+ },
85
+ {
86
+ sfen: '4k4/9/9/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
87
+ rules: 'standard',
88
+ japaneseName: '裸玉',
89
+ englishName: 'Naked King',
90
+ },
91
+ {
92
+ sfen: 'ln2k2nl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
93
+ rules: 'standard',
94
+ japaneseName: 'トンボ+桂香',
95
+ englishName: 'Dragonfly + NL',
96
+ },
97
+ {
98
+ sfen: 'l3k3l/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
99
+ rules: 'standard',
100
+ japaneseName: 'トンボ+香',
101
+ englishName: 'Dragonfly + L',
102
+ },
103
+ {
104
+ sfen: '4k4/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1',
105
+ rules: 'standard',
106
+ japaneseName: 'トンボ',
107
+ englishName: 'Dragonfly',
108
+ },
109
+ {
110
+ sfen: 'lnsgkgsn1/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w L 1',
111
+ rules: 'standard',
112
+ japaneseName: '香得',
113
+ englishName: 'Lance Gained',
114
+ },
115
+ {
116
+ sfen: 'lnsgkgsnl/1r7/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w B 1',
117
+ rules: 'standard',
118
+ japaneseName: '角得',
119
+ englishName: 'Bishop Gained',
120
+ },
121
+ {
122
+ sfen: 'lnsgkgsnl/7b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w R 1',
123
+ rules: 'standard',
124
+ japaneseName: '飛車得',
125
+ englishName: 'Rook Gained',
126
+ },
127
+ {
128
+ sfen: 'lnsgkgsn1/7b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w RL 1',
129
+ rules: 'standard',
130
+ japaneseName: '飛香得',
131
+ englishName: 'Rook-Lance Gained',
132
+ },
133
+ {
134
+ sfen: 'lnsgkgsnl/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w RB 1',
135
+ rules: 'standard',
136
+ japaneseName: '二枚得',
137
+ englishName: '2-piece Gained',
138
+ },
139
+ {
140
+ sfen: '1nsgkgsn1/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w RB2L 1',
141
+ rules: 'standard',
142
+ japaneseName: '四枚得',
143
+ englishName: '4-piece Gained',
144
+ },
145
+ {
146
+ sfen: '2sgkgs2/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w RB2N2L 1',
147
+ rules: 'standard',
148
+ japaneseName: '六枚得',
149
+ englishName: '6-piece Gained',
150
+ },
151
+ {
152
+ rules: 'standard',
153
+ sfen: '3gkg3/9/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w RB2S2N2L 1',
154
+ japaneseName: '八枚得',
155
+ englishName: '8-piece Gained',
156
+ },
157
+ // minishogi
158
+ {
159
+ rules: 'minishogi',
160
+ sfen: 'r1sgk/4p/5/P4/KGSBR w - 1',
161
+ japaneseName: '角落ち',
162
+ englishName: 'Bishop',
163
+ },
164
+ {
165
+ rules: 'minishogi',
166
+ sfen: '1bsgk/4p/5/P4/KGSBR w - 1',
167
+ japaneseName: '飛車落ち',
168
+ englishName: 'Rook',
169
+ },
170
+ {
171
+ rules: 'minishogi',
172
+ sfen: '2sgk/4p/5/P4/KGSBR w - 1',
173
+ japaneseName: '二枚落ち',
174
+ englishName: '2-piece',
175
+ },
176
+ {
177
+ rules: 'minishogi',
178
+ sfen: '3gk/4p/5/P4/KGSBR w - 1',
179
+ japaneseName: '三枚落ち',
180
+ englishName: '3-piece',
181
+ },
182
+ {
183
+ rules: 'minishogi',
184
+ sfen: '4k/4p/5/P4/KGSBR w - 1',
185
+ japaneseName: '四枚落ち',
186
+ englishName: '4-piece',
187
+ },
188
+ // chushogi
189
+ {
190
+ rules: 'chushogi',
191
+ sfen: 'lfcsgekgscfl/a1b1txxt1b1a/mvrhdqndhrvm/pppppppppppp/3i4i3/12/12/3I4I3/PPPPPPPPPPPP/MVRHDNQDHRVM/A1B1T+O+OT1B1A/LFCSGKEGSCFL w - 1',
192
+ japaneseName: '3枚獅子',
193
+ englishName: '3-piece lion',
194
+ },
195
+ {
196
+ rules: 'chushogi',
197
+ sfen: 'lfcsgekgscfl/a1b1txot1b1a/mvrhdqndhrvm/pppppppppppp/3i4i3/12/12/3I4I3/PPPPPPPPPPPP/MVRHDNQDHRVM/A1B1T+OXT1B1A/LFCSGKEGSCFL w - 1',
198
+ japaneseName: '2枚獅子',
199
+ englishName: '2-lions',
200
+ },
201
+ {
202
+ rules: 'chushogi',
203
+ sfen: 'lfcsgekgscfl/a1b1txot1b1a/mvrhdqndhrvm/pppppppppppp/3i4i3/12/12/3I4I3/PPPPPPPPPPPP/MVRHDNQDHRVM/A1B1TOXT1B1A/LFCSGK+EGSCFL w - 1',
204
+ japaneseName: '2枚王',
205
+ englishName: '2-kings',
206
+ },
207
+ // annan
208
+ {
209
+ sfen: 'lnsgkgsn1/1r5b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
210
+ rules: 'annan',
211
+ japaneseName: '香落ち',
212
+ englishName: 'Lance',
213
+ },
214
+ {
215
+ sfen: '1nsgkgsnl/1r5b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
216
+ rules: 'annan',
217
+ japaneseName: '右香落ち',
218
+ englishName: 'Right Lance',
219
+ },
220
+ {
221
+ sfen: 'lnsgkgsnl/1r7/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
222
+ rules: 'annan',
223
+ japaneseName: '角落ち',
224
+ englishName: 'Bishop',
225
+ },
226
+ {
227
+ sfen: 'lnsgkgsnl/7b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
228
+ rules: 'annan',
229
+ japaneseName: '飛車落ち',
230
+ englishName: 'Rook',
231
+ },
232
+ {
233
+ sfen: 'lnsgkgsn1/7b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
234
+ rules: 'annan',
235
+ japaneseName: '飛香落ち',
236
+ englishName: 'Rook-Lance',
237
+ },
238
+ {
239
+ sfen: 'lnsgkgsnl/9/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
240
+ rules: 'annan',
241
+ japaneseName: '二枚落ち',
242
+ englishName: '2-piece',
243
+ },
244
+ {
245
+ sfen: '1nsgkgsn1/9/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
246
+ rules: 'annan',
247
+ japaneseName: '四枚落ち',
248
+ englishName: '4-piece',
249
+ },
250
+ {
251
+ sfen: '2sgkgs2/9/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
252
+ rules: 'annan',
253
+ japaneseName: '六枚落ち',
254
+ englishName: '6-piece',
255
+ },
256
+ {
257
+ sfen: '3gkg3/9/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
258
+ rules: 'annan',
259
+ japaneseName: '八枚落ち',
260
+ englishName: '8-piece',
261
+ },
262
+ {
263
+ sfen: '4k4/9/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
264
+ rules: 'annan',
265
+ japaneseName: '十枚落ち',
266
+ englishName: '10-piece',
267
+ },
268
+ {
269
+ sfen: '4k4/9/9/9/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w 3p 1',
270
+ rules: 'annan',
271
+ japaneseName: '歩三兵',
272
+ englishName: '3 Pawns',
273
+ },
274
+ {
275
+ sfen: '4k4/9/9/9/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
276
+ rules: 'annan',
277
+ japaneseName: '裸玉',
278
+ englishName: 'Naked King',
279
+ },
280
+ {
281
+ sfen: 'ln2k2nl/1r5b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
282
+ rules: 'annan',
283
+ japaneseName: 'トンボ+桂香',
284
+ englishName: 'Dragonfly + NL',
285
+ },
286
+ {
287
+ sfen: 'l3k3l/1r5b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
288
+ rules: 'annan',
289
+ japaneseName: 'トンボ+香',
290
+ englishName: 'Dragonfly + L',
291
+ },
292
+ {
293
+ sfen: '4k4/1r5b1/p1ppppp1p/1p5p1/9/1P5P1/P1PPPPP1P/1B5R1/LNSGKGSNL w - 1',
294
+ rules: 'annan',
295
+ japaneseName: 'トンボ',
296
+ englishName: 'Dragonfly',
297
+ },
298
+ ];
299
+ function compareSfens(a, b) {
300
+ var _a, _b;
301
+ const aSplit = a.split(' '), bSplit = b.split(' ');
302
+ return (aSplit.length >= 2 &&
303
+ aSplit[0] === bSplit[0] &&
304
+ aSplit[1] === bSplit[1] &&
305
+ (aSplit[2] === bSplit[2] || ((_a = aSplit[2]) !== null && _a !== void 0 ? _a : '-') === ((_b = bSplit[2]) !== null && _b !== void 0 ? _b : '-')));
306
+ }
307
+ //# sourceMappingURL=handicaps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handicaps.js","sourceRoot":"","sources":["src/handicaps.ts"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,19 +1,20 @@
1
- export { FILE_NAMES, RANK_NAMES, FileName, RankName, Square, SquareName, Color, COLORS, Dimensions, Role, ROLES, Piece, PieceName, RoleMap, ColorMap, HandMap, NormalMove, DropMove, Move, isDrop, isNormal, Setup, Result, RESULTS, Rules, RULES, Outcome, } from './types.js';
2
- export { defined, makeSquare, makeUsi, makePieceName, opposite, parseCoordinates, parseSquare, parseUsi, parsePieceName, squareFile, squareRank, toBW, toBlackWhite, toColor, } from './util.js';
1
+ export { FILE_NAMES, RANK_NAMES, FileName, RankName, Square, SquareName, Color, COLORS, Dimensions, Role, ROLES, Piece, PieceName, RoleMap, ColorMap, HandMap, NormalMove, DropMove, Move, isDrop, isNormal, Setup, Result, RESULTS, Rules, RULES, Outcome, Handicap, } from './types.js';
2
+ export { defined, makeSquareName, makeUsi, makePieceName, opposite, parseCoordinates, parseSquareName, parseUsi, parsePieceName, squareFile, squareRank, toBW, toBlackWhite, toColor, } from './util.js';
3
3
  export { SquareSet } from './squareSet.js';
4
4
  export { Board } from './board.js';
5
5
  export { IllegalSetup, Position, PositionError, Context } from './variant/position.js';
6
6
  export { Shogi } from './variant/shogi.js';
7
7
  export { Minishogi } from './variant/minishogi.js';
8
8
  export { Chushogi } from './variant/chushogi.js';
9
+ export { Annan } from './variant/annan.js';
9
10
  export * as variant from './variant/variant.js';
10
11
  export * as variantUtil from './variant/util.js';
11
12
  export * as attacks from './attacks';
12
13
  export * as compat from './compat.js';
13
14
  export * as debug from './debug.js';
14
15
  export * as sfen from './sfen.js';
15
- export * as handicaps from './notation/kif/kifHandicaps.js';
16
16
  export * as hands from './hands.js';
17
+ export * as handicaps from './handicaps.js';
17
18
  export * as japanese from './notation/japanese.js';
18
19
  export * as kitaoKawasaki from './notation/kitaoKawasaki.js';
19
20
  export * as western from './notation/western.js';
package/index.js CHANGED
@@ -1,19 +1,20 @@
1
1
  export { FILE_NAMES, RANK_NAMES, COLORS, ROLES, isDrop, isNormal, RESULTS, RULES, } from './types.js';
2
- export { defined, makeSquare, makeUsi, makePieceName, opposite, parseCoordinates, parseSquare, parseUsi, parsePieceName, squareFile, squareRank, toBW, toBlackWhite, toColor, } from './util.js';
2
+ export { defined, makeSquareName, makeUsi, makePieceName, opposite, parseCoordinates, parseSquareName, parseUsi, parsePieceName, squareFile, squareRank, toBW, toBlackWhite, toColor, } from './util.js';
3
3
  export { SquareSet } from './squareSet.js';
4
4
  export { Board } from './board.js';
5
5
  export { IllegalSetup, Position, PositionError } from './variant/position.js';
6
6
  export { Shogi } from './variant/shogi.js';
7
7
  export { Minishogi } from './variant/minishogi.js';
8
8
  export { Chushogi } from './variant/chushogi.js';
9
+ export { Annan } from './variant/annan.js';
9
10
  export * as variant from './variant/variant.js';
10
11
  export * as variantUtil from './variant/util.js';
11
12
  export * as attacks from './attacks';
12
13
  export * as compat from './compat.js';
13
14
  export * as debug from './debug.js';
14
15
  export * as sfen from './sfen.js';
15
- export * as handicaps from './notation/kif/kifHandicaps.js';
16
16
  export * as hands from './hands.js';
17
+ export * as handicaps from './handicaps.js';
17
18
  export * as japanese from './notation/japanese.js';
18
19
  export * as kitaoKawasaki from './notation/kitaoKawasaki.js';
19
20
  export * as western from './notation/western.js';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EAMV,MAAM,EAGN,KAAK,EASL,MAAM,EACN,QAAQ,EAGR,OAAO,EAEP,KAAK,GAEN,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,OAAO,EACP,UAAU,EACV,OAAO,EACP,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,UAAU,EACV,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,OAAO,GACR,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAW,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAC;AAE5D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EAMV,MAAM,EAGN,KAAK,EASL,MAAM,EACN,QAAQ,EAGR,OAAO,EAEP,KAAK,GAGN,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,OAAO,EACP,cAAc,EACd,OAAO,EACP,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,cAAc,EACd,UAAU,EACV,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,OAAO,GACR,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAW,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC"}
@@ -40,21 +40,28 @@ export function makeJapaneseMove(pos, move, lastDest) {
40
40
  return undefined;
41
41
  }
42
42
  }
43
+ const silverGoldRoles = [
44
+ 'gold',
45
+ 'silver',
46
+ 'promotedlance',
47
+ 'promotedknight',
48
+ 'promotedsilver',
49
+ 'promotedpawn',
50
+ 'tokin',
51
+ ];
52
+ const majorRoles = ['bishop', 'rook', 'horse', 'dragon'];
43
53
  function disambiguate(rules, piece, orig, dest, others) {
44
54
  const myRank = squareRank(orig), myFile = squareFile(orig);
45
55
  const destRank = squareRank(dest), destFile = squareFile(dest);
46
56
  const movingUp = myRank > destRank, movingDown = myRank < destRank;
57
+ const jumpsButShouldnt = rules === 'annan' &&
58
+ piece.role !== 'knight' &&
59
+ Math.abs(myFile - destFile) === 1 &&
60
+ Math.abs(myRank - destRank) === 2;
47
61
  // special case - gold-like/silver piece is moving directly forward
48
- const sRoles = [
49
- 'gold',
50
- 'silver',
51
- 'promotedlance',
52
- 'promotedknight',
53
- 'promotedsilver',
54
- 'promotedpawn',
55
- 'tokin',
56
- ];
57
- if (myFile === destFile && (piece.color === 'sente') === movingUp && sRoles.includes(piece.role))
62
+ if (myFile === destFile &&
63
+ (piece.color === 'sente') === movingUp &&
64
+ (silverGoldRoles.includes(piece.role) || (rules === 'annan' && majorRoles.includes(piece.role))))
58
65
  return '直';
59
66
  // special case for lion moves on the same file
60
67
  if (['lion', 'lionpromoted', 'falcon'].includes(piece.role) &&
@@ -64,16 +71,18 @@ function disambiguate(rules, piece, orig, dest, others) {
64
71
  }
65
72
  // is this the only piece moving in certain vertical direction (up, down, none - horizontally)
66
73
  if (![...others].map(squareRank).some(r => r < destRank === movingDown && r > destRank === movingUp))
67
- return verticalDisambiguation(rules, piece, movingUp, movingDown);
74
+ return verticalDisambiguation(rules, piece, movingUp, movingDown, jumpsButShouldnt);
68
75
  const othersFiles = [...others].map(squareFile), rightest = othersFiles.reduce((prev, cur) => (prev < cur ? prev : cur)), leftest = othersFiles.reduce((prev, cur) => (prev > cur ? prev : cur));
69
76
  // is this piece positioned most on one side or in the middle
70
77
  if (rightest > myFile || leftest < myFile || (others.size() === 2 && rightest < myFile && leftest > myFile))
71
78
  return sideDisambiguation(piece, rightest > myFile, leftest < myFile);
72
79
  return (sideDisambiguation(piece, rightest >= myFile, leftest <= myFile) +
73
- verticalDisambiguation(rules, piece, movingUp, movingDown));
80
+ verticalDisambiguation(rules, piece, movingUp, movingDown, jumpsButShouldnt));
74
81
  }
75
- function verticalDisambiguation(rules, piece, up, down) {
76
- if (up === down)
82
+ function verticalDisambiguation(rules, piece, up, down, jumpOver) {
83
+ if (jumpOver)
84
+ return '跳';
85
+ else if (up === down)
77
86
  return '寄';
78
87
  else if ((piece.color === 'sente' && up) || (piece.color === 'gote' && down))
79
88
  return rules !== 'chushogi' && ['horse', 'dragon'].includes(piece.role) ? '行' : '上';
@@ -1 +1 @@
1
- {"version":3,"file":"japanese.js","sourceRoot":"","sources":["../src/notation/japanese.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"japanese.js","sourceRoot":"","sources":["../src/notation/japanese.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAoC,MAAM,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3F,MAAM;AACN,MAAM,UAAU,gBAAgB,CAAC,GAAa,EAAE,IAAU,EAAE,QAAiB;;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;QAChB,MAAM,MAAM,GAAG,QAAQ,CACrB,GAAG,EACH,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC7G,IAAI,CAAC,EAAE,CACR,CAAC,OAAO,EAAE;YACT,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,CAAC;QACR,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;KAC3E;SAAM;QACL,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EACrC,SAAS,GAAG,QAAQ,CAClB,GAAG,EACH,GAAG,CAAC,KAAK;iBACN,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAChE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC1C,IAAI,CAAC,EAAE,CACR,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EACpB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAEpG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACzB,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5C,IAAI,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC;gBAC/C,IAAI,IAAI;oBAAE,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;qBACrD,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI;oBAAE,OAAO,KAAK,CAAC;;oBACxC,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;aACrG;iBAAM;gBACL,MAAM,OAAO,GAAG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,MAAA,GAAG,CAAC,QAAQ,0CAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAC7F,OAAO,GAAG,IAAI,CAAC,SAAS;oBACtB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC/E,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;aAClD;SACF;;YAAM,OAAO,SAAS,CAAC;KACzB;AACH,CAAC;AACD,MAAM,eAAe,GAAW;IAC9B,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,OAAO;CACR,CAAC;AACF,MAAM,UAAU,GAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEjE,SAAS,YAAY,CAAC,KAAY,EAAE,KAAY,EAAE,IAAY,EAAE,IAAY,EAAE,MAAiB;IAC7F,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,EAC7B,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,EAC/B,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,EAChC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEjC,MAAM,gBAAgB,GACpB,KAAK,KAAK,OAAO;QACjB,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpC,mEAAmE;IACnE,IACE,MAAM,KAAK,QAAQ;QACnB,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,QAAQ;QACtC,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhG,OAAO,GAAG,CAAC;IAEb,+CAA+C;IAC/C,IACE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QACvD,QAAQ,KAAK,MAAM;QACnB,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EACpC;QACA,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;KACjD;IAED,8FAA8F;IAC9F,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,KAAK,UAAU,IAAI,CAAC,GAAG,QAAQ,KAAK,QAAQ,CAAC;QAClG,OAAO,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAEtF,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAC7C,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACvE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,6DAA6D;IAC7D,IAAI,QAAQ,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,CAAC;QACzG,OAAO,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAExE,OAAO,CACL,kBAAkB,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC;QAChE,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAY,EAAE,KAAY,EAAE,EAAW,EAAE,IAAa,EAAE,QAAiB;IACvG,IAAI,QAAQ;QAAE,OAAO,GAAG,CAAC;SACpB,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;SAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC;QAC1E,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;;QACjF,OAAO,GAAG,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAY,EAAE,KAAc,EAAE,IAAa;IACrE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;SAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;;QACvF,OAAO,GAAG,CAAC;AAClB,CAAC"}
@@ -6,7 +6,6 @@ import { Position } from '../../variant/position.js';
6
6
  export declare enum InvalidKif {
7
7
  Kif = "ERR_KIF",
8
8
  Board = "ERR_BOARD",
9
- Handicap = "ERR_HANDICAP",
10
9
  Hands = "ERR_HANDS"
11
10
  }
12
11
  export declare class KifError extends Error {
@@ -16,7 +15,6 @@ export declare function makeKifPositionHeader(pos: Position): string;
16
15
  export declare function makeKifBoard(rules: Rules, board: Board): string;
17
16
  export declare function makeKifHand(rules: Rules, hand: Hand): string;
18
17
  export declare function parseKifHeader(kif: string): Result<Position, KifError>;
19
- export declare function parseKifPositionHeader(kif: string): Result<Position, KifError>;
20
18
  export declare function parseKifBoard(rules: Rules, kifBoard: string): Result<Board, KifError>;
21
19
  export declare function parseKifHand(rules: Rules, handPart: string): Result<Hand, KifError>;
22
20
  export declare function parseTags(kif: string): [string, string][];