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.
- package/README.md +2 -2
- package/compat.js +11 -11
- package/compat.js.map +1 -1
- package/debug.js +3 -3
- package/debug.js.map +1 -1
- package/handicaps.d.ts +5 -0
- package/handicaps.js +307 -0
- package/handicaps.js.map +1 -0
- package/index.d.ts +4 -3
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/notation/japanese.js +23 -14
- package/notation/japanese.js.map +1 -1
- package/notation/kif/kif.d.ts +0 -2
- package/notation/kif/kif.js +34 -31
- package/notation/kif/kif.js.map +1 -1
- package/notation/westernEngine.js +5 -5
- package/notation/westernEngine.js.map +1 -1
- package/package.json +9 -5
- package/sfen.d.ts +2 -2
- package/sfen.js +9 -7
- package/sfen.js.map +1 -1
- package/src/compat.ts +11 -11
- package/src/debug.ts +3 -3
- package/src/handicaps.ts +315 -0
- package/src/index.ts +7 -4
- package/src/notation/japanese.ts +27 -14
- package/src/notation/kif/kif.ts +47 -29
- package/src/notation/westernEngine.ts +6 -6
- package/src/sfen.ts +9 -7
- package/src/types.ts +14 -7
- package/src/util.ts +12 -12
- package/src/variant/annan.ts +158 -0
- package/src/variant/chushogi.ts +11 -3
- package/src/variant/minishogi.ts +3 -3
- package/src/variant/position.ts +4 -12
- package/src/variant/shogi.ts +35 -23
- package/src/variant/util.ts +1 -0
- package/src/variant/variant.ts +6 -0
- package/types.d.ts +13 -7
- package/types.js +1 -1
- package/types.js.map +1 -1
- package/util.d.ts +3 -3
- package/util.js +8 -8
- package/util.js.map +1 -1
- package/variant/annan.d.ts +16 -0
- package/variant/annan.js +137 -0
- package/variant/annan.js.map +1 -0
- package/variant/chushogi.js +8 -3
- package/variant/chushogi.js.map +1 -1
- package/variant/minishogi.js +3 -3
- package/variant/minishogi.js.map +1 -1
- package/variant/position.d.ts +0 -1
- package/variant/position.js +3 -11
- package/variant/position.js.map +1 -1
- package/variant/shogi.d.ts +2 -0
- package/variant/shogi.js +22 -16
- package/variant/shogi.js.map +1 -1
- package/variant/util.js +1 -0
- package/variant/util.js.map +1 -1
- package/variant/variant.d.ts +2 -0
- package/variant/variant.js +5 -0
- package/variant/variant.js.map +1 -1
- package/notation/kif/kifHandicaps.d.ts +0 -2
- package/notation/kif/kifHandicaps.js +0 -93
- package/notation/kif/kifHandicaps.js.map +0 -1
- 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
|
|
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,
|
|
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 =>
|
|
9
|
-
result.set(
|
|
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 =>
|
|
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,
|
|
25
|
+
const result = new Map(), squares = secondLionStepDests(before, parseSquareName(initialSq), parseSquareName(midSq));
|
|
26
26
|
if (squares.nonEmpty()) {
|
|
27
|
-
const d = Array.from(squares, s =>
|
|
28
|
-
result.set(
|
|
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
|
-
? [
|
|
38
|
+
? [makeSquareName(move.to)]
|
|
39
39
|
: defined(move.midStep)
|
|
40
|
-
? [
|
|
41
|
-
: [
|
|
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 =>
|
|
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":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,
|
|
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 {
|
|
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(`${
|
|
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,
|
|
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":"AAEA,OAAO,EAAE,
|
|
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
|
package/handicaps.js.map
ADDED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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"}
|
package/notation/japanese.js
CHANGED
|
@@ -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
|
-
|
|
49
|
-
'
|
|
50
|
-
'
|
|
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 (
|
|
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) ? '行' : '上';
|
package/notation/japanese.js.map
CHANGED
|
@@ -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":"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"}
|
package/notation/kif/kif.d.ts
CHANGED
|
@@ -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][];
|