Javascript 在Chessboard.js中检查Checkmate
我正在用棋盘J下一盘棋,我想检查是否将死 我该怎么做 我正在使用那个代码,但它不起作用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"); }
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条件。它怎么不起作用?您的控制台中是否出现错误?