X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FGrand.js;h=7f5fe422fb32c862a3aa70f27c86060d3cf1f42a;hb=6e62b1c7d177585003e923d423025dff280a7525;hp=b598f2d29e2666a67645c09d1d2595186f3a95c5;hpb=2d7194bd9c976f444e43e5dc0a725823b6472eb9;p=vchess.git diff --git a/public/javascripts/variants/Grand.js b/public/javascripts/variants/Grand.js index b598f2d2..7f5fe422 100644 --- a/public/javascripts/variants/Grand.js +++ b/public/javascripts/variants/Grand.js @@ -18,10 +18,30 @@ class GrandRules extends ChessRules return true; } - static GenRandInitFen() + static IsGoodEnpassant(enpassant) + { + if (enpassant != "-") + { + const squares = enpassant.split(","); + if (squares.length > 2) + return false; + for (let sq of squares) + { + const ep = V.SquareToCoords(sq); + if (isNaN(ep.x) || !V.OnBoard(ep)) + return false; + } + } + return true; + } + + 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() @@ -32,7 +52,7 @@ class GrandRules extends ChessRules getCapturedFen() { let counts = _.map(_.range(10), 0); - for (let i=0; i