chessboard.js не может играть в игру с заданной позицией

Когда я использую пример «разрешать только легальные ходы» http://chessboardjs.com/examples#5000, Я могу переместить белые и черные фигуры.
Когда я хочу установить FEN строку в конфигурации, заменяя position: 'start' от position: 'r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R'Я не могу переместить уже перемещенные фигуры, и если я перемещу фигуру, которая никогда не была перемещена, все остальные фигуры вернутся в исходное положение.

1

Решение

‘R1bqkbnr / pppp1ppp / 2n5 / 1B2p3 / 4Р3 / 5N2 / PPPP1PPP / RNBQK2R’ недопустимый формат FEN для chess.js, поскольку библиотека не знает ни о каких параметрах (ход: черный или белый, замки, e.t.c).

var game = new Chess();
game.validate_fen('r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R');

//Object {valid: false, error_number: 1, error: "FEN string must contain six space-delimited fields."}

Вы должны использовать правильный FEN для chess.js. Например:

var game = new Chess("rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e3 0 2");

// cfg.position == "rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e3 0 2"

Или вы можете использовать game.load функция. Например:

var game = new Chess();
game.load("rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e3 0 2");

// cfg.position == "rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq e3 0 2"
1

Другие решения

Других решений пока нет …