@lichess-org/chessground 9.7.4 → 9.8.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/dist/board.js +8 -8
- package/dist/board.js.map +1 -1
- package/dist/chessground.min.js +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.js.map +1 -1
- package/dist/drag.js +8 -2
- package/dist/drag.js.map +1 -1
- package/dist/draw.d.ts +1 -1
- package/dist/fen.js +2 -1
- package/dist/fen.js.map +1 -1
- package/dist/premove.js +60 -44
- package/dist/premove.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +2 -1
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +4 -2
- package/dist/util.js +5 -3
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
- package/src/board.ts +10 -7
- package/src/config.ts +4 -3
- package/src/drag.ts +10 -2
- package/src/draw.ts +1 -1
- package/src/fen.ts +2 -1
- package/src/premove.ts +71 -73
- package/src/state.ts +4 -1
- package/src/types.ts +20 -0
- package/src/util.ts +9 -4
package/dist/premove.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as util from './util.js';
|
|
2
|
-
const isDestOccupiedByFriendly = (ctx) => ctx.friendlies.has(
|
|
3
|
-
const isDestOccupiedByEnemy = (ctx) => ctx.enemies.has(
|
|
4
|
-
const anyPieceBetween = (
|
|
2
|
+
const isDestOccupiedByFriendly = (ctx) => ctx.friendlies.has(ctx.dest.key);
|
|
3
|
+
const isDestOccupiedByEnemy = (ctx) => ctx.enemies.has(ctx.dest.key);
|
|
4
|
+
const anyPieceBetween = (orig, dest, pieces) => util.squaresBetween(...orig, ...dest).some(s => pieces.has(s));
|
|
5
5
|
const canEnemyPawnAdvanceToSquare = (pawnStart, dest, ctx) => {
|
|
6
6
|
const piece = ctx.enemies.get(pawnStart);
|
|
7
7
|
if (piece?.role !== 'pawn')
|
|
@@ -19,9 +19,9 @@ const canEnemyPawnCaptureOnSquare = (pawnStart, dest, ctx) => {
|
|
|
19
19
|
(ctx.friendlies.has(dest) ||
|
|
20
20
|
canBeCapturedBySomeEnemyEnPassant(util.squareShiftedVertically(dest, enemyPawn.color === 'white' ? -1 : 1), ctx.friendlies, ctx.enemies, ctx.lastMove)));
|
|
21
21
|
};
|
|
22
|
-
const canSomeEnemyPawnAdvanceToDest = (ctx) => [...ctx.enemies.keys()].some(key => canEnemyPawnAdvanceToSquare(key,
|
|
22
|
+
const canSomeEnemyPawnAdvanceToDest = (ctx) => [...ctx.enemies.keys()].some(key => canEnemyPawnAdvanceToSquare(key, ctx.dest.key, ctx));
|
|
23
23
|
const isDestControlledByEnemy = (ctx, pieceRolesExclude) => {
|
|
24
|
-
const square = ctx.
|
|
24
|
+
const square = ctx.dest.pos;
|
|
25
25
|
return [...ctx.enemies].some(([key, piece]) => {
|
|
26
26
|
const piecePos = util.key2pos(key);
|
|
27
27
|
return (!pieceRolesExclude?.includes(piece.role) &&
|
|
@@ -35,7 +35,7 @@ const isDestControlledByEnemy = (ctx, pieceRolesExclude) => {
|
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
const isFriendlyOnDestAndAttacked = (ctx) => isDestOccupiedByFriendly(ctx) &&
|
|
38
|
-
(canBeCapturedBySomeEnemyEnPassant(
|
|
38
|
+
(canBeCapturedBySomeEnemyEnPassant(ctx.dest.key, ctx.friendlies, ctx.enemies, ctx.lastMove) ||
|
|
39
39
|
isDestControlledByEnemy(ctx));
|
|
40
40
|
const canBeCapturedBySomeEnemyEnPassant = (potentialSquareOfFriendlyPawn, friendlies, enemies, lastMove) => {
|
|
41
41
|
if (!potentialSquareOfFriendlyPawn || (lastMove && potentialSquareOfFriendlyPawn !== lastMove[1]))
|
|
@@ -45,22 +45,33 @@ const canBeCapturedBySomeEnemyEnPassant = (potentialSquareOfFriendlyPawn, friend
|
|
|
45
45
|
return (friendly?.role === 'pawn' &&
|
|
46
46
|
pos[1] === (friendly.color === 'white' ? 3 : 4) &&
|
|
47
47
|
(!lastMove || util.diff(util.key2pos(lastMove[0])[1], pos[1]) === 2) &&
|
|
48
|
-
[1, -1].some(delta =>
|
|
48
|
+
[1, -1].some(delta => {
|
|
49
|
+
const k = util.pos2key([pos[0] + delta, pos[1]]);
|
|
50
|
+
return !!k && enemies.get(k)?.role === 'pawn';
|
|
51
|
+
}));
|
|
49
52
|
};
|
|
50
|
-
const isPathClearEnoughOfFriendliesForPremove = (ctx) => {
|
|
53
|
+
const isPathClearEnoughOfFriendliesForPremove = (ctx, isPawnAdvance) => {
|
|
51
54
|
if (ctx.unrestrictedPremoves)
|
|
52
55
|
return true;
|
|
53
|
-
const squaresBetween = util.squaresBetween(...ctx.
|
|
56
|
+
const squaresBetween = util.squaresBetween(...ctx.orig.pos, ...ctx.dest.pos);
|
|
57
|
+
if (isPawnAdvance)
|
|
58
|
+
squaresBetween.push(ctx.dest.key);
|
|
54
59
|
const squaresOfFriendliesBetween = squaresBetween.filter(s => ctx.friendlies.has(s));
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
if (!squaresOfFriendliesBetween.length)
|
|
61
|
+
return true;
|
|
62
|
+
const firstSquareOfFriendliesBetween = squaresOfFriendliesBetween[0];
|
|
63
|
+
const nextSquare = util.squareShiftedVertically(firstSquareOfFriendliesBetween, ctx.color === 'white' ? -1 : 1);
|
|
64
|
+
return (squaresOfFriendliesBetween.length === 1 &&
|
|
65
|
+
canBeCapturedBySomeEnemyEnPassant(firstSquareOfFriendliesBetween, ctx.friendlies, ctx.enemies, ctx.lastMove) &&
|
|
66
|
+
!!nextSquare &&
|
|
67
|
+
!squaresBetween.includes(nextSquare));
|
|
59
68
|
};
|
|
60
|
-
const isPathClearEnoughOfEnemiesForPremove = (ctx) => {
|
|
69
|
+
const isPathClearEnoughOfEnemiesForPremove = (ctx, isPawnAdvance) => {
|
|
61
70
|
if (ctx.unrestrictedPremoves)
|
|
62
71
|
return true;
|
|
63
|
-
const squaresBetween = util.squaresBetween(...ctx.
|
|
72
|
+
const squaresBetween = util.squaresBetween(...ctx.orig.pos, ...ctx.dest.pos);
|
|
73
|
+
if (isPawnAdvance)
|
|
74
|
+
squaresBetween.push(ctx.dest.key);
|
|
64
75
|
const squaresOfEnemiesBetween = squaresBetween.filter(s => ctx.enemies.has(s));
|
|
65
76
|
if (squaresOfEnemiesBetween.length > 1)
|
|
66
77
|
return false;
|
|
@@ -72,23 +83,27 @@ const isPathClearEnoughOfEnemiesForPremove = (ctx) => {
|
|
|
72
83
|
return true;
|
|
73
84
|
const enemyStep = enemy.color === 'white' ? 1 : -1;
|
|
74
85
|
const squareAbove = util.squareShiftedVertically(enemySquare, enemyStep);
|
|
75
|
-
const enemyPawnDests =
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
const enemyPawnDests = squareAbove
|
|
87
|
+
? [
|
|
88
|
+
...util.adjacentSquares(squareAbove).filter(s => canEnemyPawnCaptureOnSquare(enemySquare, s, ctx)),
|
|
89
|
+
...[squareAbove, util.squareShiftedVertically(squareAbove, enemyStep)]
|
|
90
|
+
.filter(s => !!s)
|
|
91
|
+
.filter(s => canEnemyPawnAdvanceToSquare(enemySquare, s, ctx)),
|
|
92
|
+
]
|
|
93
|
+
: [];
|
|
94
|
+
const badSquares = [...squaresBetween, ctx.orig.key];
|
|
80
95
|
return enemyPawnDests.some(square => !badSquares.includes(square));
|
|
81
96
|
};
|
|
82
|
-
const isPathClearEnoughForPremove = (ctx) => isPathClearEnoughOfFriendliesForPremove(ctx) &&
|
|
97
|
+
const isPathClearEnoughForPremove = (ctx, isPawnAdvance) => isPathClearEnoughOfFriendliesForPremove(ctx, isPawnAdvance) &&
|
|
98
|
+
isPathClearEnoughOfEnemiesForPremove(ctx, isPawnAdvance);
|
|
83
99
|
const pawn = (ctx) => {
|
|
84
100
|
const step = ctx.color === 'white' ? 1 : -1;
|
|
85
|
-
if (util.diff(ctx.
|
|
101
|
+
if (util.diff(ctx.orig.pos[0], ctx.dest.pos[0]) > 1)
|
|
86
102
|
return false;
|
|
87
|
-
if (!util.diff(ctx.
|
|
88
|
-
return (util.pawnDirAdvance(...ctx.
|
|
89
|
-
isPathClearEnoughForPremove(
|
|
90
|
-
|
|
91
|
-
if (ctx.pos2[1] !== ctx.pos1[1] + step)
|
|
103
|
+
if (!util.diff(ctx.orig.pos[0], ctx.dest.pos[0]))
|
|
104
|
+
return (util.pawnDirAdvance(...ctx.orig.pos, ...ctx.dest.pos, ctx.color === 'white') &&
|
|
105
|
+
isPathClearEnoughForPremove(ctx, true));
|
|
106
|
+
if (ctx.dest.pos[1] !== ctx.orig.pos[1] + step)
|
|
92
107
|
return false;
|
|
93
108
|
if (ctx.unrestrictedPremoves || isDestOccupiedByEnemy(ctx))
|
|
94
109
|
return true;
|
|
@@ -96,33 +111,33 @@ const pawn = (ctx) => {
|
|
|
96
111
|
return isDestControlledByEnemy(ctx);
|
|
97
112
|
else
|
|
98
113
|
return (canSomeEnemyPawnAdvanceToDest(ctx) ||
|
|
99
|
-
canBeCapturedBySomeEnemyEnPassant(util.pos2key([ctx.
|
|
114
|
+
canBeCapturedBySomeEnemyEnPassant(util.pos2key([ctx.dest.pos[0], ctx.dest.pos[1] + step]), ctx.friendlies, ctx.enemies, ctx.lastMove) ||
|
|
100
115
|
isDestControlledByEnemy(ctx, ['pawn']));
|
|
101
116
|
};
|
|
102
|
-
const knight = (ctx) => util.knightDir(...ctx.
|
|
117
|
+
const knight = (ctx) => util.knightDir(...ctx.orig.pos, ...ctx.dest.pos) &&
|
|
103
118
|
(ctx.unrestrictedPremoves || !isDestOccupiedByFriendly(ctx) || isFriendlyOnDestAndAttacked(ctx));
|
|
104
|
-
const bishop = (ctx) => util.bishopDir(...ctx.
|
|
105
|
-
isPathClearEnoughForPremove(ctx) &&
|
|
119
|
+
const bishop = (ctx) => util.bishopDir(...ctx.orig.pos, ...ctx.dest.pos) &&
|
|
120
|
+
isPathClearEnoughForPremove(ctx, false) &&
|
|
106
121
|
(ctx.unrestrictedPremoves || !isDestOccupiedByFriendly(ctx) || isFriendlyOnDestAndAttacked(ctx));
|
|
107
|
-
const rook = (ctx) => util.rookDir(...ctx.
|
|
108
|
-
isPathClearEnoughForPremove(ctx) &&
|
|
122
|
+
const rook = (ctx) => util.rookDir(...ctx.orig.pos, ...ctx.dest.pos) &&
|
|
123
|
+
isPathClearEnoughForPremove(ctx, false) &&
|
|
109
124
|
(ctx.unrestrictedPremoves || !isDestOccupiedByFriendly(ctx) || isFriendlyOnDestAndAttacked(ctx));
|
|
110
125
|
const queen = (ctx) => bishop(ctx) || rook(ctx);
|
|
111
|
-
const king = (ctx) => (util.kingDirNonCastling(...ctx.
|
|
126
|
+
const king = (ctx) => (util.kingDirNonCastling(...ctx.orig.pos, ...ctx.dest.pos) &&
|
|
112
127
|
(ctx.unrestrictedPremoves || !isDestOccupiedByFriendly(ctx) || isFriendlyOnDestAndAttacked(ctx))) ||
|
|
113
128
|
(ctx.canCastle &&
|
|
114
|
-
ctx.
|
|
115
|
-
ctx.
|
|
116
|
-
((ctx.
|
|
117
|
-
((ctx.
|
|
118
|
-
(ctx.
|
|
119
|
-
ctx.rookFilesFriendlies.includes(ctx.
|
|
129
|
+
ctx.orig.pos[1] === ctx.dest.pos[1] &&
|
|
130
|
+
ctx.orig.pos[1] === (ctx.color === 'white' ? 0 : 7) &&
|
|
131
|
+
((ctx.orig.pos[0] === 4 &&
|
|
132
|
+
((ctx.dest.pos[0] === 2 && ctx.rookFilesFriendlies.includes(0)) ||
|
|
133
|
+
(ctx.dest.pos[0] === 6 && ctx.rookFilesFriendlies.includes(7)))) ||
|
|
134
|
+
ctx.rookFilesFriendlies.includes(ctx.dest.pos[0])) &&
|
|
120
135
|
(ctx.unrestrictedPremoves ||
|
|
121
136
|
/* The following checks if no non-rook friendly piece is in the way between the king and its castling destination.
|
|
122
137
|
Note that for the Chess960 edge case of Kb1 "long castling", the check passes even if there is a piece in the way
|
|
123
138
|
on c1. But this is fine, since premoving from b1 to a1 as a normal move would have already returned true. */
|
|
124
139
|
util
|
|
125
|
-
.squaresBetween(...ctx.
|
|
140
|
+
.squaresBetween(...ctx.orig.pos, ctx.dest.pos[0] > ctx.orig.pos[0] ? 7 : 1, ctx.dest.pos[1])
|
|
126
141
|
.map(s => ctx.allPieces.get(s))
|
|
127
142
|
.every(p => !p || util.samePiece(p, { role: 'rook', color: ctx.color }))));
|
|
128
143
|
const mobilityByRole = { pawn, knight, bishop, rook, queen, king };
|
|
@@ -131,8 +146,9 @@ export function premove(state, key) {
|
|
|
131
146
|
const piece = pieces.get(key);
|
|
132
147
|
if (!piece || piece.color === state.turnColor)
|
|
133
148
|
return [];
|
|
134
|
-
const color = piece.color, friendlies = new Map([...pieces].filter(([_, p]) => p.color === color)), enemies = new Map([...pieces].filter(([_, p]) => p.color === util.opposite(color))),
|
|
135
|
-
|
|
149
|
+
const color = piece.color, friendlies = new Map([...pieces].filter(([_, p]) => p.color === color)), enemies = new Map([...pieces].filter(([_, p]) => p.color === util.opposite(color))), orig = { key, pos: util.key2pos(key) }, mobility = (ctx) => mobilityByRole[piece.role](ctx) && state.premovable.additionalPremoveRequirements(ctx), partialCtx = {
|
|
150
|
+
orig,
|
|
151
|
+
role: piece.role,
|
|
136
152
|
allPieces: pieces,
|
|
137
153
|
friendlies: friendlies,
|
|
138
154
|
enemies: enemies,
|
|
@@ -144,6 +160,6 @@ export function premove(state, key) {
|
|
|
144
160
|
.map(([k]) => util.key2pos(k)[0]),
|
|
145
161
|
lastMove: state.lastMove,
|
|
146
162
|
};
|
|
147
|
-
return util.
|
|
163
|
+
return util.allPosAndKey.filter(dest => mobility({ ...partialCtx, dest })).map(pk => pk.key);
|
|
148
164
|
}
|
|
149
165
|
//# sourceMappingURL=premove.js.map
|
package/dist/premove.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premove.js","sourceRoot":"","sources":["../src/premove.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"premove.js","sourceRoot":"","sources":["../src/premove.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export interface HeadlessState {
|
|
|
20
20
|
blockTouchScroll: boolean;
|
|
21
21
|
touchIgnoreRadius: number;
|
|
22
22
|
pieceKey: boolean;
|
|
23
|
+
pixelCoordsOfMouchDownToMaybeClearShapes?: cg.NumberPair;
|
|
23
24
|
trustAllEvents?: boolean;
|
|
24
25
|
highlight: {
|
|
25
26
|
lastMove: boolean;
|
|
@@ -50,6 +51,7 @@ export interface HeadlessState {
|
|
|
50
51
|
customDests?: cg.Dests;
|
|
51
52
|
current?: cg.KeyPair;
|
|
52
53
|
unrestrictedPremoves?: boolean;
|
|
54
|
+
additionalPremoveRequirements: cg.Mobility;
|
|
53
55
|
events: {
|
|
54
56
|
set?: (orig: cg.Key, dest: cg.Key, metadata?: cg.SetPremoveMetadata) => void;
|
|
55
57
|
unset?: () => void;
|
package/dist/state.js
CHANGED
|
@@ -35,6 +35,7 @@ export function defaults() {
|
|
|
35
35
|
enabled: true,
|
|
36
36
|
showDests: true,
|
|
37
37
|
castle: true,
|
|
38
|
+
additionalPremoveRequirements: _ => true,
|
|
38
39
|
events: {},
|
|
39
40
|
},
|
|
40
41
|
predroppable: {
|
|
@@ -64,7 +65,7 @@ export function defaults() {
|
|
|
64
65
|
enabled: true, // can draw
|
|
65
66
|
visible: true, // can view
|
|
66
67
|
defaultSnapToValidMove: true,
|
|
67
|
-
|
|
68
|
+
eraseOnMovablePieceClick: true,
|
|
68
69
|
shapes: [],
|
|
69
70
|
autoShapes: [],
|
|
70
71
|
brushes: {
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ export type Rank = (typeof ranks)[number];
|
|
|
5
5
|
export type Key = 'a0' | `${File}${Rank}`;
|
|
6
6
|
export type FEN = string;
|
|
7
7
|
export type Pos = [number, number];
|
|
8
|
+
export interface PosAndKey {
|
|
9
|
+
pos: Pos;
|
|
10
|
+
key: Key;
|
|
11
|
+
}
|
|
8
12
|
export interface Piece {
|
|
9
13
|
role: Role;
|
|
10
14
|
color: Color;
|
|
@@ -95,3 +99,17 @@ export type RanksPosition = 'left' | 'right';
|
|
|
95
99
|
export type BrushColor = 'green' | 'red' | 'blue' | 'yellow';
|
|
96
100
|
export type SquareClasses = Map<Key, string>;
|
|
97
101
|
export type DirectionalCheck = (x1: number, y1: number, x2: number, y2: number) => boolean;
|
|
102
|
+
export type MobilityContext = {
|
|
103
|
+
orig: PosAndKey;
|
|
104
|
+
dest: PosAndKey;
|
|
105
|
+
role: Role;
|
|
106
|
+
allPieces: Pieces;
|
|
107
|
+
friendlies: Pieces;
|
|
108
|
+
enemies: Pieces;
|
|
109
|
+
unrestrictedPremoves: boolean;
|
|
110
|
+
color: Color;
|
|
111
|
+
canCastle: boolean;
|
|
112
|
+
rookFilesFriendlies: number[];
|
|
113
|
+
lastMove: Key[] | undefined;
|
|
114
|
+
};
|
|
115
|
+
export type Mobility = (ctx: MobilityContext) => boolean;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA0GA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACpF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as cg from './types.js';
|
|
2
2
|
export declare const invRanks: readonly cg.Rank[];
|
|
3
3
|
export declare const allKeys: readonly cg.Key[];
|
|
4
|
-
export declare const pos2key: (pos: cg.Pos) => cg.Key;
|
|
4
|
+
export declare const pos2key: (pos: cg.Pos) => cg.Key | undefined;
|
|
5
|
+
export declare const pos2keyUnsafe: (pos: cg.Pos) => cg.Key;
|
|
5
6
|
export declare const key2pos: (k: cg.Key) => cg.Pos;
|
|
6
7
|
export declare const uciToMove: (uci: string | undefined) => cg.Key[] | undefined;
|
|
7
8
|
export declare const allPos: readonly cg.Pos[];
|
|
9
|
+
export declare const allPosAndKey: readonly cg.PosAndKey[];
|
|
8
10
|
export declare function memo<A>(f: () => A): cg.Memo<A>;
|
|
9
11
|
export declare const timer: () => cg.Timer;
|
|
10
12
|
export declare const opposite: (c: cg.Color) => cg.Color;
|
|
@@ -32,4 +34,4 @@ export declare const pawnDirAdvance: (x1: number, y1: number, x2: number, y2: nu
|
|
|
32
34
|
*/
|
|
33
35
|
export declare const squaresBetween: (x1: number, y1: number, x2: number, y2: number) => cg.Key[];
|
|
34
36
|
export declare const adjacentSquares: (square: cg.Key) => cg.Key[];
|
|
35
|
-
export declare const squareShiftedVertically: (square: cg.Key, delta: number) => cg.Key;
|
|
37
|
+
export declare const squareShiftedVertically: (square: cg.Key, delta: number) => cg.Key | undefined;
|
package/dist/util.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as cg from './types.js';
|
|
2
2
|
export const invRanks = [...cg.ranks].reverse();
|
|
3
3
|
export const allKeys = cg.files.flatMap(f => cg.ranks.map(r => (f + r)));
|
|
4
|
-
export const pos2key = (pos) => allKeys[8 * pos[0] + pos[1]];
|
|
4
|
+
export const pos2key = (pos) => pos.every(x => x >= 0 && x <= 7) ? allKeys[8 * pos[0] + pos[1]] : undefined;
|
|
5
|
+
export const pos2keyUnsafe = (pos) => pos2key(pos);
|
|
5
6
|
export const key2pos = (k) => [k.charCodeAt(0) - 97, k.charCodeAt(1) - 49];
|
|
6
7
|
export const uciToMove = (uci) => {
|
|
7
8
|
if (!uci)
|
|
@@ -11,6 +12,7 @@ export const uciToMove = (uci) => {
|
|
|
11
12
|
return [uci.slice(0, 2), uci.slice(2, 4)];
|
|
12
13
|
};
|
|
13
14
|
export const allPos = allKeys.map(key2pos);
|
|
15
|
+
export const allPosAndKey = allKeys.map((key, i) => ({ key, pos: allPos[i] }));
|
|
14
16
|
export function memo(f) {
|
|
15
17
|
let v;
|
|
16
18
|
const ret = () => {
|
|
@@ -114,7 +116,7 @@ export const squaresBetween = (x1, y1, x2, y2) => {
|
|
|
114
116
|
x += stepX;
|
|
115
117
|
y += stepY;
|
|
116
118
|
}
|
|
117
|
-
return squares.map(
|
|
119
|
+
return squares.map(pos2key).filter(k => k !== undefined);
|
|
118
120
|
};
|
|
119
121
|
export const adjacentSquares = (square) => {
|
|
120
122
|
const pos = key2pos(square);
|
|
@@ -123,7 +125,7 @@ export const adjacentSquares = (square) => {
|
|
|
123
125
|
adjacentSquares.push([pos[0] - 1, pos[1]]);
|
|
124
126
|
if (pos[0] < 7)
|
|
125
127
|
adjacentSquares.push([pos[0] + 1, pos[1]]);
|
|
126
|
-
return adjacentSquares.map(pos2key);
|
|
128
|
+
return adjacentSquares.map(pos2key).filter(k => k !== undefined);
|
|
127
129
|
};
|
|
128
130
|
export const squareShiftedVertically = (square, delta) => {
|
|
129
131
|
const pos = key2pos(square);
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAuB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC,CAAC;AAEtG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/board.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
queenDir,
|
|
10
10
|
knightDir,
|
|
11
11
|
samePos,
|
|
12
|
+
pos2keyUnsafe,
|
|
12
13
|
} from './util.js';
|
|
13
14
|
import { premove } from './premove.js';
|
|
14
15
|
import * as cg from './types.js';
|
|
@@ -87,8 +88,8 @@ function tryAutoCastle(state: HeadlessState, orig: cg.Key, dest: cg.Key): boolea
|
|
|
87
88
|
const destPos = key2pos(dest);
|
|
88
89
|
if ((origPos[1] !== 0 && origPos[1] !== 7) || origPos[1] !== destPos[1]) return false;
|
|
89
90
|
if (origPos[0] === 4 && !state.pieces.has(dest)) {
|
|
90
|
-
if (destPos[0] === 6) dest =
|
|
91
|
-
else if (destPos[0] === 2) dest =
|
|
91
|
+
if (destPos[0] === 6) dest = pos2keyUnsafe([7, destPos[1]]);
|
|
92
|
+
else if (destPos[0] === 2) dest = pos2keyUnsafe([0, destPos[1]]);
|
|
92
93
|
}
|
|
93
94
|
const rook = state.pieces.get(dest);
|
|
94
95
|
if (!rook || rook.color !== king.color || rook.role !== 'rook') return false;
|
|
@@ -97,11 +98,11 @@ function tryAutoCastle(state: HeadlessState, orig: cg.Key, dest: cg.Key): boolea
|
|
|
97
98
|
state.pieces.delete(dest);
|
|
98
99
|
|
|
99
100
|
if (origPos[0] < destPos[0]) {
|
|
100
|
-
state.pieces.set(
|
|
101
|
-
state.pieces.set(
|
|
101
|
+
state.pieces.set(pos2keyUnsafe([6, destPos[1]]), king);
|
|
102
|
+
state.pieces.set(pos2keyUnsafe([5, destPos[1]]), rook);
|
|
102
103
|
} else {
|
|
103
|
-
state.pieces.set(
|
|
104
|
-
state.pieces.set(
|
|
104
|
+
state.pieces.set(pos2keyUnsafe([2, destPos[1]]), king);
|
|
105
|
+
state.pieces.set(pos2keyUnsafe([3, destPos[1]]), rook);
|
|
105
106
|
}
|
|
106
107
|
return true;
|
|
107
108
|
}
|
|
@@ -367,7 +368,9 @@ export function getSnappedKeyAtDomPos(
|
|
|
367
368
|
queenDir(origPos[0], origPos[1], pos2[0], pos2[1]) ||
|
|
368
369
|
knightDir(origPos[0], origPos[1], pos2[0], pos2[1]),
|
|
369
370
|
);
|
|
370
|
-
const validSnapCenters = validSnapPos.map(pos2 =>
|
|
371
|
+
const validSnapCenters = validSnapPos.map(pos2 =>
|
|
372
|
+
computeSquareCenter(pos2keyUnsafe(pos2), asWhite, bounds),
|
|
373
|
+
);
|
|
371
374
|
const validSnapDistances = validSnapCenters.map(pos2 => distanceSq(pos, pos2));
|
|
372
375
|
const [, closestSnapIndex] = validSnapDistances.reduce(
|
|
373
376
|
(a, b, index) => (a[0] < b ? a : [b, index]),
|
package/src/config.ts
CHANGED
|
@@ -48,6 +48,7 @@ export interface Config {
|
|
|
48
48
|
dests?: cg.Key[]; // premove destinations for the current selection
|
|
49
49
|
customDests?: cg.Dests; // use custom valid premoves. {"a2" ["a3" "a4"] "b1" ["a3" "c3"]}
|
|
50
50
|
unrestrictedPremoves?: boolean; // if falsy, the positions of friendly pieces will be used to trim premove options
|
|
51
|
+
additionalPremoveRequirements?: Partial<Record<cg.Role, cg.Mobility>>;
|
|
51
52
|
events?: {
|
|
52
53
|
set?: (orig: cg.Key, dest: cg.Key, metadata?: cg.SetPremoveMetadata) => void; // called after the premove has been set
|
|
53
54
|
unset?: () => void; // called after the premove has been unset
|
|
@@ -84,9 +85,9 @@ export interface Config {
|
|
|
84
85
|
enabled?: boolean; // can draw
|
|
85
86
|
visible?: boolean; // can view
|
|
86
87
|
defaultSnapToValidMove?: boolean;
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
88
|
+
// Clicking an empty square or immovable piece will clear the drawing regardless, but when this property is true,
|
|
89
|
+
// clicking on a (currently unselected) movable piece will also clear the drawing.
|
|
90
|
+
eraseOnMovablePieceClick?: boolean;
|
|
90
91
|
shapes?: DrawShape[];
|
|
91
92
|
autoShapes?: DrawShape[];
|
|
92
93
|
brushes?: DrawBrushes;
|
package/src/drag.ts
CHANGED
|
@@ -32,9 +32,9 @@ export function start(s: State, e: cg.MouchEvent): void {
|
|
|
32
32
|
if (
|
|
33
33
|
!previouslySelected &&
|
|
34
34
|
s.drawable.enabled &&
|
|
35
|
-
(s.drawable.
|
|
35
|
+
(s.drawable.eraseOnMovablePieceClick || !piece || piece.color !== s.turnColor)
|
|
36
36
|
)
|
|
37
|
-
|
|
37
|
+
s.pixelCoordsOfMouchDownToMaybeClearShapes = position;
|
|
38
38
|
// Prevent touch scroll and create no corresponding mouse event, if there
|
|
39
39
|
// is an intent to interact with the board.
|
|
40
40
|
if (
|
|
@@ -159,6 +159,14 @@ export function move(s: State, e: cg.MouchEvent): void {
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
export function end(s: State, e: cg.MouchEvent): void {
|
|
162
|
+
const position = util.eventPosition(e);
|
|
163
|
+
if (
|
|
164
|
+
position &&
|
|
165
|
+
s.pixelCoordsOfMouchDownToMaybeClearShapes &&
|
|
166
|
+
util.samePos(position, s.pixelCoordsOfMouchDownToMaybeClearShapes)
|
|
167
|
+
)
|
|
168
|
+
drawClear(s);
|
|
169
|
+
s.pixelCoordsOfMouchDownToMaybeClearShapes = undefined;
|
|
162
170
|
const cur = s.draggable.current;
|
|
163
171
|
if (!cur) return;
|
|
164
172
|
// create no corresponding mouse event
|
package/src/draw.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface Drawable {
|
|
|
44
44
|
enabled: boolean; // can draw
|
|
45
45
|
visible: boolean; // can view
|
|
46
46
|
defaultSnapToValidMove: boolean;
|
|
47
|
-
|
|
47
|
+
eraseOnMovablePieceClick: boolean;
|
|
48
48
|
onChange?: (shapes: DrawShape[]) => void;
|
|
49
49
|
shapes: DrawShape[]; // user shapes
|
|
50
50
|
autoShapes: DrawShape[]; // computer shapes
|
package/src/fen.ts
CHANGED
|
@@ -37,7 +37,8 @@ export function read(fen: cg.FEN): cg.Pieces {
|
|
|
37
37
|
col = 0;
|
|
38
38
|
break;
|
|
39
39
|
case '~': {
|
|
40
|
-
const
|
|
40
|
+
const k = pos2key([col - 1, row]);
|
|
41
|
+
const piece = k && pieces.get(k);
|
|
41
42
|
if (piece) piece.promoted = true;
|
|
42
43
|
break;
|
|
43
44
|
}
|