1
0
forked from sent/waves
waves-fork/public/assets/g/chess/js/board-actions-mobile.js
2025-04-09 17:11:14 -05:00

64 lines
1.6 KiB
JavaScript

// init mobile board
function setMobileBoard(position = false) {
gameEnd = false;
// init board with preloaded position (fen)
if (position == false) {
position = 'rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1';
} else {
console.log('Custom: ' + position);
}
// game rules control object
game = new Chess(position);
board = new Chessboard('board', {
position: ChessUtils.FEN.startId,
eventHandlers: {
onPieceSelected: function(notationSquare) {
var i, movesNotation, movesPosition = [];
movesNotation = game.moves({square: notationSquare, verbose: true});
for (i = 0; i < movesNotation.length; i++) {
movesPosition.push(ChessUtils.convertNotationSquareToIndex(movesNotation[i].to));
}
return movesPosition;
},
onMove: function(move) {
if (!gameStarted) {
gameStarted = true;
$('#btn-choose-white-side, #btn-choose-black-side').addClass('locked');
}
var nextPlayer,
status,
move = game.move({
from: move.from,
to: move.to,
promotion: 'q'
});
nextPlayer = 'white';
if (game.turn() === 'b') {
nextPlayer = 'black';
}
if (move !== null) {
checkPositions('computer');
}
setTimeout(function() {
stockfish.postMessage('position fen ' + game.fen());
stockfish.postMessage('go depth ' + engineSkill);
}, 1000);
return game.fen();
}
}
});
gameHistoryClear();
};