X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FSwitching.js;h=04bb110c0489ad3f56ae2abdc9d61aafa8da1fce;hb=b955c65b942d09d24b5c3bed0d755d4f2f8f71f1;hp=af934f329a6eefc532113b71ad27d69c4b388290;hpb=6752407b88b6d7678b9b19df4ffe1224d17625d7;p=vchess.git diff --git a/public/javascripts/variants/Switching.js b/public/javascripts/variants/Switching.js index af934f32..04bb110c 100644 --- a/public/javascripts/variants/Switching.js +++ b/public/javascripts/variants/Switching.js @@ -6,7 +6,6 @@ class SwitchingRules extends ChessRules const c = this.getColor(x1,y1); //same as color at square 2 const p1 = this.getPiece(x1,y1); const p2 = this.getPiece(x2,y2); - const V = VariantRules; if (p1 == V.KING && p2 == V.ROOK) return []; //avoid duplicate moves (potential conflict with castle) let move = new Move({ @@ -22,8 +21,7 @@ class SwitchingRules extends ChessRules end: {x:x2,y:y2} }); // Move completion: promote switched pawns (as in Magnetic) - const sizeX = VariantRules.size[0]; - const lastRank = (c == "w" ? 0 : sizeX-1); + const lastRank = (c == "w" ? 0 : V.size.x-1); let moves = []; if ((p1==V.PAWN && x2==lastRank) || (p2==V.PAWN && x1==lastRank)) { @@ -51,21 +49,21 @@ class SwitchingRules extends ChessRules return moves; } - getPotentialMovesFrom([x,y]) + getPotentialMovesFrom([x,y], computer) { let moves = super.getPotentialMovesFrom([x,y]); - // Add switches: - const V = VariantRules; + // Add switches: respecting chessboard ordering if "computer" is on const color = this.turn; const piece = this.getPiece(x,y); - const [sizeX,sizeY] = V.size; const steps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]); const kp = this.kingPos[color]; - const oppCol = this.getOppCol(color); + const oppCol = V.GetOppCol(color); for (let step of steps) { let [i,j] = [x+step[0],y+step[1]]; - if (i>=0 && i=0 && j