var move = game.move({
from: source,
to: target,
promotion: 'q'
})
其中一期建议,为了决定促销,只需将上面的代码更改为
var move = game.move({
from: source,
to: target,
promotion: 'desired piece'
})
我尝试了各种方法,包括
promotion: 'q||n'
和
promotion: 'q'
promotion: 'n'
当谈到让玩家自由选择降级时,我找不到办法这样做。有这样的办法吗
是的,您可以更改促销品类型:
promotion: 'r' // For rook
promotion: 'b' // For bishop
promotion: 'n' // For knight
如果您希望用户能够决定他/她想要哪一块,您需要为此创建一个界面,例如带有按钮的弹出窗口。然后您可以使用
game.move({...})
所需的棋子字符集来调用 promotion
。
如果您将react-chessboard库与chess.js一起使用,则可以使用
onPieceDrop={onDrop}
<Chessboard position={fen} onPieceDrop={onDrop} />
然后,您的代码可能如下所示:
const onDrop = (source: string, target: string, piece: string) => {
try {
const move = game.move({
from: source,
to: target,
promotion: piece.slice(-1).toLowerCase(),
});
updateStatus();
return true;
}
} catch (error) {
console.error(error);
return false;
}
};