File size: 1,298 Bytes
ece5841 |
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import { Chess } from "chess.js";
export class ChessModified extends Chess {
constructor(obj) {
if (obj) {
super(obj);
} else {
super();
}
this.selected = null;
}
select(square) {
let piece = this.get(square);
if (piece) {
this.selected = square;
}
}
convertRowColToLAN(row, col) {
const letters = ["a", "b", "c", "d", "e", "f", "g", "h"];
const letter = letters[col];
const number = 8 - row;
return letter + number;
}
getBoard() {
let board = this.board();
for (let i = 0; i < board.length; i++) {
for (let j = 0; j < board[i].length; j++) {
if (board[i][j] === null) {
let square = this.convertRowColToLAN(i, j);
board[i][j] = { square };
}
}
}
return board;
}
getMoves(square) {
let moves = this.moves({ square, verbose: true });
let newMoves = [];
for (let i = 0; i < moves.length; i++) {
newMoves.push(moves[i].to);
}
return newMoves;
}
}
export let chess = new ChessModified();
export function chessInit() {
return new ChessModified();
}
|