genRandInitFen(seed) {
const options = Object.assign({mode: "suicide"}, this.options);
const gr = new GiveawayRules({options: options, genFenOnly: true});
+ const baseFen = gr.genRandInitFen(seed);
// Add empty cmove:
- return (
- gr.genRandInitFen(seed).slice(0, -17) + '{"enpassant":"-","cmove":"-"}');
+ const fenParts = baseFen.split(" ");
+ let others = JSON.parse(fenParts[3]);
+ others["cmove"] = "-";
+ return fenParts.slice(0, 3).join(" ") + " " + JSON.stringify(others);
}
getFen() {
getCurrentScore() {
const color = this.turn;
const kingPos = super.searchKingPos(color);
- if (color == "w" && kingPos[0] == 0) return "0-1";
- if (color == "b" && kingPos[0] == this.size.x - 1) return "1-0";
+ if (color == "w" && kingPos[0][0] == 0) return "0-1";
+ if (color == "b" && kingPos[0][0] == this.size.x - 1) return "1-0";
// King is not on the opposite edge: game not over
return "*";
}
+ // Better animation for swaps
+ customAnimate(move, segments, cb) {
+ if (move.vanish.length < 2)
+ return 0;
+ super.animateMoving(move.end, move.start, null,
+ segments.reverse().map(s => s.reverse()), cb);
+ return 1;
+ }
+
};