检查Chessboard.js中的Checkmate

问题描述 投票:0回答:2

我用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 chessboard.js
2个回答
0
投票

要确定游戏已结束,您必须计算可移动侧的合法移动。没有任何法律动作让一方移动意味着游戏已经结束。如果没有合法的动作,那么移动的一方的王是在检查=>将死。否则就是僵局。


0
投票

要检查国际象棋位置的状态,您需要的不仅仅是棋盘表示,还需要一个国际象棋引擎(理解/执行国际象棋规则的程序)。 javascript的最爱是:chess.jschessboard.js只是电路板的图形表示,不包括检查可能移动所需的任何逻辑等)

就像在这个问题How can I integrate chess.js and chessboard.js?

这些库通常一起使用:https://github.com/jhlywa/chess.js/

从那里你可以访问国际象棋的规则:https://github.com/jhlywa/chess.js/#game_over

© www.soinside.com 2019 - 2024. All rights reserved.