react-chessboard-ui 0.1.1
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 +54 -0
- package/dist/ChessBoard/Arrow.d.ts +8 -0
- package/dist/ChessBoard/ArrowLayout.d.ts +11 -0
- package/dist/ChessBoard/ChessBoard.d.ts +13 -0
- package/dist/ChessBoard/ChessBoardCellsLayout.d.ts +8 -0
- package/dist/ChessBoard/ChessBoardControlLayout.d.ts +16 -0
- package/dist/ChessBoard/ChessBoardFiguresLayout.d.ts +11 -0
- package/dist/ChessBoard/ChessBoardInteractiveLayout.d.ts +15 -0
- package/dist/ChessBoard/FigurePicker.d.ts +11 -0
- package/dist/ChessBoard/HoldedFigure.d.ts +10 -0
- package/dist/ChessBoard/chessPieciesMap.d.ts +2 -0
- package/dist/ChessBoard/constants.d.ts +13 -0
- package/dist/ChessBoard/index.d.ts +1 -0
- package/dist/ChessBoard/models.d.ts +27 -0
- package/dist/ChessBoard/useChessBoardInteractive.d.ts +41 -0
- package/dist/ChessBoard/utils.d.ts +51 -0
- package/dist/JSChessEngine/FEN.utils.d.ts +51 -0
- package/dist/JSChessEngine/JSChessEngine.d.ts +383 -0
- package/dist/JSChessEngine/__tests__/FEN.utils.test.d.ts +1 -0
- package/dist/JSChessEngine/__tests__/chessState.mock.d.ts +3 -0
- package/dist/JSChessEngine/chess.consts.d.ts +49 -0
- package/dist/JSChessEngine/index.d.ts +3 -0
- package/dist/index.css +132 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2835 -0
- package/dist/index.js.map +1 -0
- package/dist/index.modern.js +2817 -0
- package/dist/index.modern.js.map +1 -0
- package/dist/index.test.d.ts +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
export declare type FigureType = 'pawn' | 'bishop' | 'knigts' | 'rook' | 'queen' | 'king';
|
|
2
|
+
export declare type FigureColor = 'white' | 'black';
|
|
3
|
+
export declare type CellPos = [number, number];
|
|
4
|
+
export interface Figure {
|
|
5
|
+
type: FigureType;
|
|
6
|
+
color: FigureColor;
|
|
7
|
+
touched?: boolean;
|
|
8
|
+
position?: CellPos;
|
|
9
|
+
}
|
|
10
|
+
export declare type CellColor = 'white' | 'black';
|
|
11
|
+
export interface Cell {
|
|
12
|
+
figure?: Figure;
|
|
13
|
+
beated?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ChessBoardConfig {
|
|
16
|
+
cellWhiteBg: string;
|
|
17
|
+
cellBlackBg: string;
|
|
18
|
+
cellSelectedBg: string;
|
|
19
|
+
cellSize: number;
|
|
20
|
+
figures: {
|
|
21
|
+
black: {
|
|
22
|
+
[figureType: string]: string;
|
|
23
|
+
};
|
|
24
|
+
white: {
|
|
25
|
+
[figureType: string]: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface MoveNotation {
|
|
30
|
+
move: string;
|
|
31
|
+
figure: Figure;
|
|
32
|
+
stateFEN: string;
|
|
33
|
+
}
|
|
34
|
+
export declare type MoveDirection = 'top' | 'right' | 'bottom' | 'left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'top-left';
|
|
35
|
+
export declare type MoveType = 'move' | 'beat' | 'check' | 'double-check' | 'mat' | 'transform' | '0-0' | '0-0-0';
|
|
36
|
+
export declare type GameResultType = 'mat' | 'pat' | 'draw' | 'timeout' | 'surrender' | undefined;
|
|
37
|
+
export interface GameResult {
|
|
38
|
+
resultType: GameResultType;
|
|
39
|
+
winColor?: FigureColor;
|
|
40
|
+
}
|
|
41
|
+
export declare type PawnMoveType = 'first' | 'default' | 'attack';
|
|
42
|
+
export interface MoveByPawn {
|
|
43
|
+
pos: CellPos;
|
|
44
|
+
typeMove: PawnMoveType;
|
|
45
|
+
}
|
|
46
|
+
export interface MoveData {
|
|
47
|
+
from: CellPos;
|
|
48
|
+
to: CellPos;
|
|
49
|
+
figure: Figure;
|
|
50
|
+
type?: MoveType;
|
|
51
|
+
FEN?: string;
|
|
52
|
+
timeWhite?: number;
|
|
53
|
+
timeBlack?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface BeatedCountsData {
|
|
56
|
+
pawn: number;
|
|
57
|
+
knigts: number;
|
|
58
|
+
bishop: number;
|
|
59
|
+
rook: number;
|
|
60
|
+
queen: number;
|
|
61
|
+
}
|
|
62
|
+
export declare type CastlingType = '0-0' | '0-0-0';
|
|
63
|
+
export declare type OnCheckPossible = (state: Cell[][], figurePos: CellPos, targetPos: CellPos) => boolean;
|
|
64
|
+
declare const FIGURES_COUNTS: {
|
|
65
|
+
PAWNS_COUNT: number;
|
|
66
|
+
KNIGHTS_COUNT: number;
|
|
67
|
+
BISHOPS_COUNT: number;
|
|
68
|
+
ROOKS_COUNT: number;
|
|
69
|
+
QUEENS_COUNT: number;
|
|
70
|
+
KINGS_COUNT: number;
|
|
71
|
+
};
|
|
72
|
+
export declare class JSChessEngine {
|
|
73
|
+
/**
|
|
74
|
+
* Возвращает возможные ходы фигуры
|
|
75
|
+
* @param state состояние доски
|
|
76
|
+
* @param param1 позиция фигуры, которой хотим сыграть
|
|
77
|
+
* @param linesWithCheck линии по которым есть шах на союзного короля
|
|
78
|
+
* @param revese перевернута ли доска
|
|
79
|
+
*/
|
|
80
|
+
static getNextMoves: (state: Cell[][], [i, j]: CellPos, linesWithCheck: CellPos[][], revese?: boolean) => CellPos[];
|
|
81
|
+
/**
|
|
82
|
+
* Возвращает первернутое состояние доски
|
|
83
|
+
* @param state состояние доски
|
|
84
|
+
*/
|
|
85
|
+
static reverseChessBoard: (state: Cell[][]) => Cell[][];
|
|
86
|
+
/**
|
|
87
|
+
* Обновляет данные хода для того чтобы
|
|
88
|
+
* можно было применить ход к перевернутой доске
|
|
89
|
+
* @param moveData данные хода
|
|
90
|
+
* @param boardSize размер доски
|
|
91
|
+
*/
|
|
92
|
+
static reverseMove: (moveData: MoveData, boardSize: number) => MoveData;
|
|
93
|
+
/**
|
|
94
|
+
* Возвращет перевернутое значение для начала и конца хода фигуры
|
|
95
|
+
* Использовать при подсветке хода если доска перевернута
|
|
96
|
+
* @param moveVector Координаты начала и конца хода фигуры
|
|
97
|
+
* @param boardSize размер доски
|
|
98
|
+
*/
|
|
99
|
+
static reverseMoveVector: (moveVector: CellPos[], boardSize?: number) => number[][];
|
|
100
|
+
/**
|
|
101
|
+
* Проверка на то что позиция находится в пределах доски
|
|
102
|
+
* @param state состояние доски
|
|
103
|
+
* @param pos проверяемая позиция
|
|
104
|
+
*/
|
|
105
|
+
static checkInBorderBoard: (state: Cell[][], pos: CellPos) => boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Возвращает цвет фигуры
|
|
108
|
+
* @param state состояние доски
|
|
109
|
+
* @param pos позиция фигуры
|
|
110
|
+
*/
|
|
111
|
+
static getFigureColor: (state: Cell[][], pos: CellPos) => FigureColor;
|
|
112
|
+
/**
|
|
113
|
+
* Возвращает тип фигры
|
|
114
|
+
* @param state состояние доски
|
|
115
|
+
* @param pos позиция фигуры
|
|
116
|
+
*/
|
|
117
|
+
static getFigureType: (state: Cell[][], pos: CellPos) => FigureType;
|
|
118
|
+
/**
|
|
119
|
+
* Проверка находится ли в указанной клетке вражеская фигура
|
|
120
|
+
* @param state состояние доски
|
|
121
|
+
* @param pos положение фигуры союзного цвета
|
|
122
|
+
* @param target положение фигуры - цели
|
|
123
|
+
*/
|
|
124
|
+
static checkEnemy: (state: Cell[][], pos: CellPos, target: CellPos) => boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Проверка находится ли в указанной клетке союзная фигура
|
|
127
|
+
* @param state состояние доски
|
|
128
|
+
* @param pos положение фигуры союзного цвета
|
|
129
|
+
* @param target положение фигуры - цели
|
|
130
|
+
*/
|
|
131
|
+
static checkTeammate: (state: Cell[][], pos: CellPos, target: CellPos) => boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Проверка на то что фигура-цель вражеский король
|
|
134
|
+
* @param state состояние доски
|
|
135
|
+
* @param pos положение фигуры союзного цвета
|
|
136
|
+
* @param target положение фигуры - цели
|
|
137
|
+
*/
|
|
138
|
+
static checkEnemyKing: (state: Cell[][], pos: CellPos, target: CellPos) => boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Проверяет битая ли клетка, клетка становится битой после того
|
|
141
|
+
* как пешка сделает ход на две клетки веперед
|
|
142
|
+
* @param state состояние доски
|
|
143
|
+
* @param target позиция проверяемой клетки
|
|
144
|
+
*/
|
|
145
|
+
static checkBeatedCell: (state: Cell[][], target: CellPos) => boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Возвращает есть ли фигура в указаной позиции
|
|
148
|
+
* @param state состояние доски
|
|
149
|
+
* @param pos проверяемая позиция
|
|
150
|
+
* @returns
|
|
151
|
+
*/
|
|
152
|
+
static hasFigure: (state: Cell[][], pos: CellPos) => boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Проверяет дальнобойная ли фигура
|
|
155
|
+
* слон, ладья или ферзь
|
|
156
|
+
* @param state состояние доски
|
|
157
|
+
* @param figurePos позиция фигуры
|
|
158
|
+
*/
|
|
159
|
+
static checkFigureIsLongRange: (state: Cell[][], figurePos: CellPos) => boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Возвращает количество вражеских которые можно атаковать (кроме короля) фигур из массива позиций
|
|
162
|
+
* @param state состояние доски
|
|
163
|
+
* @param figurePos позиция фигуры
|
|
164
|
+
* @param positions проверяемые позиции
|
|
165
|
+
*/
|
|
166
|
+
static getCountEnemys: (state: Cell[][], figurePos: CellPos, positions: CellPos[]) => number;
|
|
167
|
+
/**
|
|
168
|
+
* Возвращает позицию союзного короля
|
|
169
|
+
* @param state состояние доски
|
|
170
|
+
* @param figurePos позиция фигуры
|
|
171
|
+
*/
|
|
172
|
+
static getTeammateKingPos: (state: Cell[][], figurePos: CellPos) => CellPos;
|
|
173
|
+
/**
|
|
174
|
+
* Возвращает все клетки с вражескими фигурами
|
|
175
|
+
* @param state состояние доски
|
|
176
|
+
* @param pos позиция союзной фигуры
|
|
177
|
+
*/
|
|
178
|
+
static getAllEnemysPositions: (state: Cell[][], pos: CellPos) => CellPos[];
|
|
179
|
+
/**
|
|
180
|
+
* Возвращает позиции фигур-союзников по цвету
|
|
181
|
+
* @param state состояние доски
|
|
182
|
+
* @param color цвет по которому ищем фигуры-союзники
|
|
183
|
+
*/
|
|
184
|
+
static getAllTeammatesPositionsByColor: (state: Cell[][], color: FigureColor) => CellPos[];
|
|
185
|
+
/**
|
|
186
|
+
* Полная проверка возможности хода для фигур: pawn, knigt, bishop, rook, queen
|
|
187
|
+
* @param state состояния доски
|
|
188
|
+
* @param pos положение фигуры союзного цвета
|
|
189
|
+
* @param target позиция клетки - цели
|
|
190
|
+
* @returns
|
|
191
|
+
*/
|
|
192
|
+
static checkPossibleMoveTo: (state: Cell[][], pos: CellPos, target: CellPos) => boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Прооверяет возможность атаки клетки
|
|
195
|
+
* Если в клетке вражеская фигура, считает ее атакованной
|
|
196
|
+
* Необходима для проверки нахождения вражеского короля за атакованной фигурой
|
|
197
|
+
* @param state состояние доски
|
|
198
|
+
* @param figurePos позиция фигураы
|
|
199
|
+
* @param target клетака под атакой
|
|
200
|
+
*/
|
|
201
|
+
static checkPossibleAttackTo: (state: Cell[][], figurePos: CellPos, target: CellPos) => boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Проверка находится ли поле под атакой вражеской фигуры
|
|
204
|
+
* (Используется для расчета возможных ходов для короля)
|
|
205
|
+
* @param state состояние доски
|
|
206
|
+
* @param pos позиция фигуры
|
|
207
|
+
* @param target проверяемая клетка
|
|
208
|
+
*/
|
|
209
|
+
static checkAttackedCell: (state: Cell[][], pos: CellPos, target: CellPos) => boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Проверяет атакованные поля вражеской пешкой
|
|
212
|
+
* (используется для получения возможных ходово для короля)
|
|
213
|
+
* @param state состояние доски
|
|
214
|
+
* @param pos текущая позиция пешки
|
|
215
|
+
* @param target клетка - цель
|
|
216
|
+
*/
|
|
217
|
+
static checkAttackedCellByPawn: (state: Cell[][], pos: CellPos, target: MoveByPawn) => boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Проверяет находится ли позиция между атакованным королем
|
|
220
|
+
* и атакующей фигурой
|
|
221
|
+
* @param state состояние доски
|
|
222
|
+
* @param pos проверяемая позиция
|
|
223
|
+
* @param kingPos позиция союзного короля
|
|
224
|
+
* @param attackerPos позиция атакующей фигуры
|
|
225
|
+
*/
|
|
226
|
+
static checkPosBetweenAttckerAndKing: (state: Cell[][], pos: CellPos, kingPos: CellPos, attackerPos: CellPos) => boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Корректирует возможные ходы фигуры в зависимости от того находится ли
|
|
229
|
+
* фигура под атакой и стоит ли на линии атаки король за фигурой
|
|
230
|
+
* @param state состояние доски
|
|
231
|
+
* @param figurePos позиция фигуры
|
|
232
|
+
* @param possibleMoves возможные ходы фигуры
|
|
233
|
+
* @param linesWithCheck массив линий по которым есть шах на союзного короля
|
|
234
|
+
*/
|
|
235
|
+
static correctionPossibleMoves: (state: Cell[][], figurePos: CellPos, possibleMoves: CellPos[], linesWithCheck: CellPos[][]) => CellPos[];
|
|
236
|
+
/**
|
|
237
|
+
* Возвращает всю атакованную линию дальнобойной фигурой
|
|
238
|
+
* @param state состояние доски
|
|
239
|
+
* @param figurePos позиция фигуры
|
|
240
|
+
* @param direction направление атаки
|
|
241
|
+
*/
|
|
242
|
+
static getFullAttackedLine: (state: Cell[][], figurePos: CellPos, direction: MoveDirection) => CellPos[];
|
|
243
|
+
/**
|
|
244
|
+
* Возвращает все атакованные врагом позиции
|
|
245
|
+
* используется для проверки ходов короля
|
|
246
|
+
* @param state состояние доски
|
|
247
|
+
* @param figurePos позиция фигуры
|
|
248
|
+
* @param reverse перевернута ли доска
|
|
249
|
+
*/
|
|
250
|
+
static getAllAttckedPostionsByEnemys: (state: Cell[][], figurePos: CellPos, reverse: boolean) => CellPos[];
|
|
251
|
+
/**
|
|
252
|
+
* Возвращает возможные позиция для движения по диагонали
|
|
253
|
+
* для Слона и Ферзя
|
|
254
|
+
* @param state состояние доски
|
|
255
|
+
* @param figurePos текущая позиция фигуры
|
|
256
|
+
*/
|
|
257
|
+
static calcDiagonalMoves: (state: Cell[][], figurePos: CellPos, onCheckPossible?: OnCheckPossible, onCheckFigureInCell?: OnCheckPossible) => CellPos[];
|
|
258
|
+
/**
|
|
259
|
+
* Возвращает возможные позиция для движения по горизонтали и вертикали
|
|
260
|
+
* для Ладьи и Ферзя
|
|
261
|
+
* @param state состяние доски
|
|
262
|
+
* @param figurePos
|
|
263
|
+
* @returns
|
|
264
|
+
*/
|
|
265
|
+
static calcHorizontalAndVerticalMoves: (state: Cell[][], figurePos: CellPos, onCheckPossible?: OnCheckPossible, onCheckFigureInCell?: OnCheckPossible) => CellPos[];
|
|
266
|
+
/**
|
|
267
|
+
* Возвращает возможные ходы для коня
|
|
268
|
+
* @param state состояние доски
|
|
269
|
+
* @param figurePos текущая позиция фигуры
|
|
270
|
+
* @returns
|
|
271
|
+
*/
|
|
272
|
+
static calcKnigtsMoves: (state: Cell[][], figurePos: CellPos, onCheckPossible?: OnCheckPossible) => CellPos[];
|
|
273
|
+
/**
|
|
274
|
+
* Проверяет возможность пешки пойти на клетку - цель
|
|
275
|
+
* @param state состояние доски
|
|
276
|
+
* @param pos текущая позиция пешки
|
|
277
|
+
* @param target клетка - цель
|
|
278
|
+
* @param pawnColor цвет пешки вычисленный заранее
|
|
279
|
+
* @param reverse перевернута ли доска
|
|
280
|
+
*/
|
|
281
|
+
static checkPossiblePawnMoveToPos: (state: Cell[][], pos: CellPos, target: MoveByPawn, pawnColor: FigureColor, reverse: boolean) => boolean;
|
|
282
|
+
/**
|
|
283
|
+
* Возвращает возможные позиции для пешки
|
|
284
|
+
* @param state состояние доски
|
|
285
|
+
* @param figurePos текущее положение пешки
|
|
286
|
+
* @param revese перевернута ли доска
|
|
287
|
+
* @returns
|
|
288
|
+
*/
|
|
289
|
+
static calcPawnMoves: (state: Cell[][], figurePos: CellPos, revese: boolean, onCheckPossible?: typeof JSChessEngine.checkPossiblePawnMoveToPos | typeof JSChessEngine.checkAttackedCellByPawn) => CellPos[];
|
|
290
|
+
/**
|
|
291
|
+
* Проверяет возможна ли рокеровка
|
|
292
|
+
* @param state состояние доски
|
|
293
|
+
* @param kingPos позиция короля
|
|
294
|
+
* @param reverse перевенута ли доска
|
|
295
|
+
*/
|
|
296
|
+
static checkPossibleCastling: (state: Cell[][], kingPos: CellPos, castlingPath: CellPos[], reverse: boolean) => boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Возвращает возможные ходы для короля
|
|
299
|
+
* @param state состояние доски
|
|
300
|
+
* @param figurePos позиция короля
|
|
301
|
+
* @returns
|
|
302
|
+
*/
|
|
303
|
+
static calcKingMoves: (state: Cell[][], figurePos: CellPos, reverse: boolean, onlyAttacks?: boolean) => CellPos[];
|
|
304
|
+
static getNextMovesPawn: (state: Cell[][], figurePos: CellPos, reverse: boolean) => CellPos[];
|
|
305
|
+
static getNextMovesBishop: (state: Cell[][], figurePos: CellPos) => CellPos[];
|
|
306
|
+
static getNextMovesKnigts: (state: Cell[][], figurePos: CellPos) => CellPos[];
|
|
307
|
+
static getNextMovesRook: (state: Cell[][], figurePos: CellPos) => CellPos[];
|
|
308
|
+
static getNextMovesQueen: (state: Cell[][], figurePos: CellPos) => CellPos[];
|
|
309
|
+
static getNextMovesKing: (state: Cell[][], figurePos: CellPos, reverse: boolean) => CellPos[];
|
|
310
|
+
/**
|
|
311
|
+
* Возвращает линии по которым есть шах вражескому королю
|
|
312
|
+
* @param state состояние доски
|
|
313
|
+
* @param activeColor цвет фигур, которые сделали ход
|
|
314
|
+
*/
|
|
315
|
+
static getLinesWithCheck: (state: Cell[][], activeColor: FigureColor, reverse?: boolean) => CellPos[][];
|
|
316
|
+
/**
|
|
317
|
+
* Принимает данные о фигуре, которой сыграли
|
|
318
|
+
* затем обновляет и возвращает новое состояние доски
|
|
319
|
+
* !!! Какой-то старнный эффект если не использовать мап
|
|
320
|
+
* !!! Как будто происходит мутация состояния
|
|
321
|
+
* @param state состояние доски
|
|
322
|
+
* @param currentFigure фигура, которой сыграли
|
|
323
|
+
* @param targetPos позиция на которую перемещаем фигуру
|
|
324
|
+
* @param prevPos начальная позиция фигуры
|
|
325
|
+
* @param reverse перевернута ли доска
|
|
326
|
+
*/
|
|
327
|
+
static changeState: (state: Cell[][], currentFigure: Figure, targetPos: CellPos, prevPos: CellPos, reverse: boolean) => {
|
|
328
|
+
updatedCells: Cell[][];
|
|
329
|
+
attackedPos?: CellPos;
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
332
|
+
* Обновляет состояние с превращение пешки в фигуру
|
|
333
|
+
* @param state состояние доски
|
|
334
|
+
* @param fromPos с какой клетки сделан ход
|
|
335
|
+
* @param targetPos на какую клетку сделали ход
|
|
336
|
+
* @param transformFigure в какую фигуру превратить пешку
|
|
337
|
+
*/
|
|
338
|
+
static transformPawnToFigure: (state: Cell[][], fromPos: CellPos, targetPos: CellPos, transformFigure: Figure) => Cell[][];
|
|
339
|
+
/**
|
|
340
|
+
* Возвращает плоский массив полей с фигурами
|
|
341
|
+
* @param state состояние доски
|
|
342
|
+
*/
|
|
343
|
+
static getFieldsWithFigures: (state: Cell[][]) => Cell[];
|
|
344
|
+
/**
|
|
345
|
+
* Возвращает результат игры
|
|
346
|
+
* mat - Мат
|
|
347
|
+
* pat - Пат
|
|
348
|
+
* undefined - игра продолжается
|
|
349
|
+
* @param state состояние доски
|
|
350
|
+
* @param linesWithCheck линии по которым есть шахом
|
|
351
|
+
* @param activeColor активный цвет
|
|
352
|
+
*/
|
|
353
|
+
static getGameResult: (state: Cell[][], linesWithCheck: CellPos[][], activeColor: FigureColor, reverse: boolean) => GameResult | undefined;
|
|
354
|
+
/**
|
|
355
|
+
* Возвращает количество фигур указанного типа
|
|
356
|
+
* @param flatState Обработанное состояние - одномерный массив клеток с фигурами одного цвета
|
|
357
|
+
* @param figureType тип фигуры
|
|
358
|
+
*/
|
|
359
|
+
static getFiguresCountByType: (flatState: Cell[], figureType: FigureType) => number;
|
|
360
|
+
/**
|
|
361
|
+
* Возвращает информацию о количестве съеденных фигур одного цвета
|
|
362
|
+
* @param state состояние доски
|
|
363
|
+
* @param color цвет съеденных фигур
|
|
364
|
+
*/
|
|
365
|
+
static getBeatedFigures: (state: Cell[][], color: FigureColor, countsConfig?: typeof FIGURES_COUNTS) => BeatedCountsData;
|
|
366
|
+
/**
|
|
367
|
+
* По последним шести позициям - трем ходам
|
|
368
|
+
* определяет было ли повторение позиций
|
|
369
|
+
* если да, то это ничья,
|
|
370
|
+
* Определить троекратное повторение
|
|
371
|
+
* можно по последним 8ми ходам
|
|
372
|
+
* поэтому нужно брать на сравнение массив
|
|
373
|
+
* length - 8
|
|
374
|
+
* @param fenMoves история ходов в формате FEN
|
|
375
|
+
*/
|
|
376
|
+
static detectDrawByRepeatMoves(fenMoves: string[]): boolean;
|
|
377
|
+
/**
|
|
378
|
+
* Проверяет является ли ход рокеровкой
|
|
379
|
+
* @param move данные хода
|
|
380
|
+
*/
|
|
381
|
+
static getCastlingType(move: MoveData): CastlingType | undefined;
|
|
382
|
+
}
|
|
383
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Cell, Figure } from './JSChessEngine';
|
|
2
|
+
export declare const LETTERS: string[];
|
|
3
|
+
export declare const FIGURES_LATTERS_NOTATIONS: {
|
|
4
|
+
white: {
|
|
5
|
+
pawn: string;
|
|
6
|
+
knigts: string;
|
|
7
|
+
bishop: string;
|
|
8
|
+
rook: string;
|
|
9
|
+
queen: string;
|
|
10
|
+
king: string;
|
|
11
|
+
};
|
|
12
|
+
black: {
|
|
13
|
+
pawn: string;
|
|
14
|
+
knigts: string;
|
|
15
|
+
bishop: string;
|
|
16
|
+
rook: string;
|
|
17
|
+
queen: string;
|
|
18
|
+
king: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare const LETTER_TO_FIGURE_MAP: {
|
|
22
|
+
[key: string]: Figure;
|
|
23
|
+
};
|
|
24
|
+
export declare const ALL_FIGURES: Figure[];
|
|
25
|
+
export declare const CHESS_BOARD_CONFIG: {
|
|
26
|
+
cellWhiteBg: string;
|
|
27
|
+
cellBlackBg: string;
|
|
28
|
+
cellSelectedBg: string;
|
|
29
|
+
cellSize: number;
|
|
30
|
+
figures: {
|
|
31
|
+
white: {
|
|
32
|
+
pawn: string;
|
|
33
|
+
bishop: string;
|
|
34
|
+
knigts: string;
|
|
35
|
+
rook: string;
|
|
36
|
+
queen: string;
|
|
37
|
+
king: string;
|
|
38
|
+
};
|
|
39
|
+
black: {
|
|
40
|
+
pawn: string;
|
|
41
|
+
bishop: string;
|
|
42
|
+
knigts: string;
|
|
43
|
+
rook: string;
|
|
44
|
+
queen: string;
|
|
45
|
+
king: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare const INITIAL_CELLS: Cell[][];
|
package/dist/index.css
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
._3XI6H {
|
|
2
|
+
position: relative;
|
|
3
|
+
width: -moz-fit-content;
|
|
4
|
+
width: fit-content;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
._2SyRK {
|
|
8
|
+
position: absolute;
|
|
9
|
+
top: 0;
|
|
10
|
+
right: 0;
|
|
11
|
+
bottom: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
z-index: 1;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
._3OVc8 {
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0;
|
|
19
|
+
right: 0;
|
|
20
|
+
bottom: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
z-index: 10;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
._G0IIl {
|
|
27
|
+
cursor: grabbing;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
._3THn5 {
|
|
31
|
+
position: absolute;
|
|
32
|
+
top: 0;
|
|
33
|
+
right: 0;
|
|
34
|
+
bottom: 0;
|
|
35
|
+
left: 0;
|
|
36
|
+
z-index: 5;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
._3vcXe {
|
|
40
|
+
box-sizing: border-box;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
._2yJs1 {}
|
|
44
|
+
|
|
45
|
+
._27yHq {
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
._UYGA_ {
|
|
52
|
+
border-radius: 100%;
|
|
53
|
+
opacity: 0.8;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
._2XKSc {
|
|
57
|
+
display: flex;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
._ssFQn {}
|
|
61
|
+
|
|
62
|
+
._1407I {}
|
|
63
|
+
|
|
64
|
+
._19mE- {
|
|
65
|
+
position: absolute;
|
|
66
|
+
display: flex;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
align-items: center;
|
|
69
|
+
transition: all .15s ease-out;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
._3u_-s {
|
|
73
|
+
transition: none;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
._3SfMJ {
|
|
77
|
+
opacity: .4;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
._1cIvE {
|
|
81
|
+
opacity: 0;
|
|
82
|
+
transform: rotate(-90deg);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
._Zly-L {}
|
|
86
|
+
|
|
87
|
+
._31pmr {}
|
|
88
|
+
|
|
89
|
+
._12Bbd {
|
|
90
|
+
position: absolute;
|
|
91
|
+
width: 20px;
|
|
92
|
+
height: 100px;
|
|
93
|
+
opacity: 0.5;
|
|
94
|
+
z-index: 1;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
._1BC3I {
|
|
98
|
+
position: absolute;
|
|
99
|
+
bottom: -45px;
|
|
100
|
+
left: -5px;
|
|
101
|
+
width: 0;
|
|
102
|
+
height: 0;
|
|
103
|
+
border-top: 30px solid transparent;
|
|
104
|
+
border-bottom: 30px solid transparent;
|
|
105
|
+
border-left: 30px solid;
|
|
106
|
+
transform: rotate(90deg);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
._13OXq {
|
|
110
|
+
display: flex;
|
|
111
|
+
justify-content: center;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
._16zCe {
|
|
115
|
+
background-position: center;
|
|
116
|
+
background-size: cover;
|
|
117
|
+
cursor: pointer;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
._1ZGj2 {
|
|
121
|
+
z-index: 101;
|
|
122
|
+
position: absolute;
|
|
123
|
+
top: 0;
|
|
124
|
+
right: 0;
|
|
125
|
+
bottom: 0;
|
|
126
|
+
left: 0;
|
|
127
|
+
-webkit-backdrop-filter: blur(4px);
|
|
128
|
+
backdrop-filter: blur(4px);
|
|
129
|
+
display: flex;
|
|
130
|
+
justify-content: center;
|
|
131
|
+
align-items: center;
|
|
132
|
+
}
|
package/dist/index.d.ts
ADDED