Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Chessboard.js中检查Checkmate_Javascript_Chess_Chessboard.js - Fatal编程技术网

Javascript 在Chessboard.js中检查Checkmate

Javascript 在Chessboard.js中检查Checkmate,javascript,chess,chessboard.js,Javascript,Chess,Chessboard.js,我正在用棋盘J下一盘棋,我想检查是否将死 我该怎么做 我正在使用那个代码,但它不起作用 if (game.game_over() == true) { alert("Game Over"); } 整个功能是: var onDragStart = function (source, piece, position, orientation) { if (game.game_over() == true) { alert("Game Over"); }

我正在用棋盘J下一盘棋,我想检查是否将死

我该怎么做

我正在使用那个代码,但它不起作用

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
只是棋盘的图形表示,不包括检查可能移动等所需的任何逻辑)

比如这个问题

这些库通常一起使用:


从这里您可以访问国际象棋规则:

如果game.game\u over()返回布尔值,则无需将其与真值进行比较。只需使用返回的布尔值作为if检查。除此之外,您是否可以发布game.game|u over()函数,以便我们可以看到它的逻辑是什么,以及为什么它可能不会返回为true/false?@TimHunter
game|u over:function(){return(half|u moves>=100|in|u checkmate()| in|u stallage())| | | | | | | | | | | | | | | | | | | | | | | | | | | | |?你应该能够在checkmate()函数中使用
函数来获得你想要的东西,如果你特别寻找的是checkmate条件。它怎么不起作用?您的控制台中是否出现错误?