X-Git-Url: https://git.auder.net/images/diag_mark.svg?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FGrand.js;h=8cdf6d7dcbb9f8b7e08984eaa2a3a3b92ea03563;hb=efb20746c30ac26f258f9c5de6dfb70b91980de4;hp=faf7f63fb5163c965011aa80d043684884019f63;hpb=c605216162dfc09cbbe61b0969f8890f28625372;p=vchess.git diff --git a/public/javascripts/variants/Grand.js b/public/javascripts/variants/Grand.js index faf7f63f..8cdf6d7d 100644 --- a/public/javascripts/variants/Grand.js +++ b/public/javascripts/variants/Grand.js @@ -76,7 +76,7 @@ class GrandRules extends ChessRules { // Two squares jump moves.push(this.getBasicMove([x,y], [x+2*shift,y])); - if (x == startRanks[0] && this.board[x+2*shift][y] == V.EMPTY) + if (x == startRanks[0] && this.board[x+3*shift][y] == V.EMPTY) { // 3-squares jump moves.push(this.getBasicMove([x,y], [x+3*shift,y])); @@ -93,7 +93,7 @@ class GrandRules extends ChessRules if (lastRanks.includes(x+shift)) { // Promotion - let promotionPieces = [V.ROOK,V.KNIGHT,V.BISHOP,V.QUEEN]; + let promotionPieces = [V.ROOK,V.KNIGHT,V.BISHOP,V.QUEEN,V.MARSHALL,V.CARDINAL]; promotionPieces.forEach(p => { if (!this.captures[color][p] || this.captures[color][p]==0) return; @@ -134,6 +134,8 @@ class GrandRules extends ChessRules return moves; } + // TODO: different castle? + getPotentialMarshallMoves(sq) { const V = VariantRules; @@ -189,7 +191,6 @@ class GrandRules extends ChessRules if (move.vanish.length==2 && move.appear.length==1 && move.vanish[1].p != VariantRules.PAWN) { - // Capture: update this.captures this.captures[move.vanish[1].c][move.vanish[1].p] = Math.max(0, this.captures[move.vanish[1].c][move.vanish[1].p]-1); } @@ -202,6 +203,8 @@ class GrandRules extends ChessRules ); } + static get SEARCH_DEPTH() { return 2; } + // TODO: this function could be generalized and shared better static GenRandInitFen() {