| 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(); | |
| } | |