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