generated from codespaces-examples/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmove.js
35 lines (34 loc) · 964 Bytes
/
move.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
export function applyMove(board, move) {
const flat = [];
for (let i = 0; i < 25; i++) {
flat.push('');
}
flat[board[0]] = 'wp';
flat[board[1]] = 'wp';
flat[board[2]] = 'wp';
flat[board[3]] = 'wp';
flat[board[4]] = 'bp';
flat[board[5]] = 'bp';
flat[board[6]] = 'bp';
flat[board[7]] = 'bp';
flat[board[8]] = 'wk';
flat[board[9]] = 'bk';
const isWhitesTurn = board[10] == 1;
flat[move.to] = flat[move.from];
flat[move.from] = '';
const whites = [];
const blacks = [];
let whiteKing, blackKing;
for (let i = 0; i < 25; i++) {
if (flat[i] == 'wp') {
whites.push(i);
} else if (flat[i] == 'bp') {
blacks.push(i);
} else if (flat[i] == 'wk') {
whiteKing = i;
} else if (flat[i] == 'bk') {
blackKing = i;
}
}
return [...whites, ...blacks, whiteKing, blackKing, isWhitesTurn ? 0 : 1];
}