Проверить наличие матов в Chessboard.js - PullRequest
0 голосов
/ 04 января 2019

Я играю в шахматы с 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;
    }
};

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Чтобы проверить состояние шахматной позиции, вам понадобится не только представление на шахматной доске, но и шахматный движок (программа, которая понимает / применяет шахматные правила правила ). Фаворитом для javascript является: chess.js (chessboard.js - это только графическое представление доски и не включает никакой логики, необходимой для проверки возможных ходов и т. Д.)

Как и в этом вопросе Как объединить chess.js и chessboard.js?

Эти библиотеки часто используются вместе: https://github.com/jhlywa/chess.js/

и оттуда у вас есть доступ к правилам шахмат: https://github.com/jhlywa/chess.js/#game_over

0 голосов
/ 03 марта 2019

Чтобы определить, что игра окончена, вы должны рассчитать возможные законные ходы для стороны, которая будет двигаться. Отсутствие законных ходов для стороны означает, что игра окончена. Если нет законных ходов, и король движущейся стороны находится в check => checkmate. В противном случае это тупик.

...