return true;
}
- static GenRandInitFen()
+ static ParseFen(fen)
{
- const fen = ChessRules.GenRandInitFen();
- return fen.replace(" w 1111", " w 1111 0000000000");
+ const fenParts = fen.split(" ");
+ return Object.assign(
+ ChessRules.ParseFen(fen),
+ { captured: fenParts[4] }
+ );
}
getFen()
getCapturedFen()
{
let counts = _.map(_.range(10), 0);
- for (let i=0; i<V.PIECES.length; i++)
+ for (let i=0; i<V.PIECES.length-1; i++) //-1: no king captured
{
counts[i] = this.captured["w"][V.PIECES[i]];
counts[5+i] = this.captured["b"][V.PIECES[i]];
// TODO: some redundant checks
if (epsq.x == x+shift && Math.abs(epsq.y - y) == 1)
{
- let epStep = epsq.y - y;
- var enpassantMove = this.getBasicMove([x,y], [x+shift,y+epStep]);
+ var enpassantMove = this.getBasicMove([x,y], [x+shift,epsq.y]);
enpassantMove.vanish.push({
x: x,
- y: y+epStep,
+ y: epsq.y,
p: 'p',
- c: this.getColor(x,y+epStep)
+ c: this.getColor(x,epsq.y)
});
moves.push(enpassantMove);
}
return pieces["b"].join("") +
"/pppppppppp/10/10/10/10/10/10/PPPPPPPPPP/" +
pieces["w"].join("").toUpperCase() +
- " w 1111 -";
+ " w 1111 - 0000000000";
}
}