You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chess.js中ShortMove已移除,求替代方案及Move使用方法

Chess.js中ShortMove接口替代方案及Move接口正确用法
  • Chess.js新版本已移除ShortMove接口,所有走法操作统一使用Move接口。

  • 推荐方案:用Chess.js内置方法生成/处理走法,无需手动构造Move对象
    完全不需要自己创建Move实例,Chess.js核心方法会直接返回符合接口要求的走法对象:

    import { Chess } from 'chess.js';
    
    const game = new Chess();
    // 获取所有带详细信息的合法走法(Move对象数组)
    const legalMoves = game.moves({ verbose: true });
    // 执行走法,返回执行成功的Move对象
    const validMove = game.move('e4');
    
  • 若必须手动构造Move对象,需填充所有必填属性
    Move接口必填字段包括:

    • from: 起始格子(如'e2')
    • to: 目标格子(如'e4')
    • color: 棋子颜色('w'白方、'b'黑方)
    • piece: 棋子类型('p'兵、'r'车、'n'马、'b'象、'q'后、'k'王)
    • flags: 走法标记(如'n'普通走法、'c'吃子、'e'吃过路兵)
    • san: 标准代数记谱(如'e4')
  • 适配ChessboardJSX的走法处理示例
    在落子回调中直接用格子位置字符串生成走法,无需手动构造对象:

    const onDrop = ({ sourceSquare, targetSquare }) => {
      // 尝试执行走法,自动生成符合要求的Move对象
      const move = game.move({
        from: sourceSquare,
        to: targetSquare,
        promotion: 'q' // 可选,指定升变棋子,默认升变为后
      });
    
      // 走法不合法时返回false,还原棋盘
      if (!move) return false;
    
      // 更新棋盘状态
      setPosition(game.fen());
      return true;
    };
    

内容的提问来源于stack exchange,提问作者Gabriel Eidelman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:35:50