for (let i = mvArray.length - 1; i >= 0; i--) this.undo(mvArray[i]);
if (!mv.end.released) return (mvArray.length > 1 ? mvArray : mvArray[0]);
}
+ return null; //never reached
}
// NOTE: evalPosition() is wrong, but unused since bot plays at random
// Add potential promotion indications:
const firstLastRank = (c == 'w' ? [7, 0] : [0, 7]);
if (move.end.x == firstLastRank[1] && piece == V.PAWN) {
- const up = this.getUnionPieces(move.appear[0].c, move.appear[0].p);
- notation += "=" + up[c].toUpperCase();
+ notation += "=";
+ if (ChessRules.PIECES.includes(move.appear[0].p))
+ notation += move.appear[0].p.toUpperCase();
+ else {
+ const up = this.getUnionPieces(move.appear[0].c, move.appear[0].p);
+ notation += up[c].toUpperCase();
+ }
}
else if (
move.end.x == firstLastRank[0] &&