我用chessboardjs制作国际象棋比赛,我想检查将死。
我怎样才能做到这一点 ?
我正在使用该代码,但它无法正常工作。
if (game.game_over() == true) {
alert("Game Over");
}
整个功能是:
var onDragStart = function (source, piece, position, orientation) {
if (game.game_over() == true) {
alert("Game Over");
}
if (turn == 1) {
if (piece.search(/^b/) === -1) {
return false;
}
} else {
if (piece.search(/^w/) === -1) {
return false;
}
}
if (turn == 1) {
turn = 0;
} else {
turn = 1;
}
};
要确定游戏已结束,您必须计算可移动侧的合法移动。没有任何法律动作让一方移动意味着游戏已经结束。如果没有合法的动作,那么移动的一方的王是在检查=>将死。否则就是僵局。
要检查国际象棋位置的状态,您需要的不仅仅是棋盘表示,还需要一个国际象棋引擎(理解/执行国际象棋规则的程序)。 javascript的最爱是:chess.js
(chessboard.js
只是电路板的图形表示,不包括检查可能移动所需的任何逻辑等)
就像在这个问题How can I integrate chess.js and chessboard.js?
这些库通常一起使用:https://github.com/jhlywa/chess.js/
从那里你可以访问国际象棋的规则:https://github.com/jhlywa/chess.js/#game_over