X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FGrand.js;h=7f5fe422fb32c862a3aa70f27c86060d3cf1f42a;hb=6e62b1c7d177585003e923d423025dff280a7525;hp=ec2afd81fc98d5afd0fabe6dfcc21e07a3f3023d;hpb=643479f8d7c3622b57fc49c4f10d9950793ebf4f;p=vchess.git diff --git a/public/javascripts/variants/Grand.js b/public/javascripts/variants/Grand.js index ec2afd81..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) { - const fen = ChessRules.GenRandInitFen(); - return fen.replace(" w 1111", " w 1111 0000000000"); + 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 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