X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FAtomic.js;h=0275805f7b3351689941835d7ae755529d917a35;hb=643479f8d7c3622b57fc49c4f10d9950793ebf4f;hp=0fd7647e62414ec5edf60f38604a9a640d422ee5;hpb=d3334c3a9ee5edc9412d2c95adfc752b72057168;p=vchess.git diff --git a/public/javascripts/variants/Atomic.js b/public/javascripts/variants/Atomic.js index 0fd7647e..0275805f 100644 --- a/public/javascripts/variants/Atomic.js +++ b/public/javascripts/variants/Atomic.js @@ -1,23 +1,24 @@ class AtomicRules extends ChessRules { - getPotentialMovesFrom([x,y], c, lastMove) + getPotentialMovesFrom([x,y]) { - let moves = super.getPotentialMovesFrom([x,y], c, lastMove); + let moves = super.getPotentialMovesFrom([x,y]); // Handle explosions moves.forEach(m => { if (m.vanish.length > 1 && m.appear.length <= 1) //avoid castles { - // Explosion! TODO: drop moves which explode our king here + // Explosion! TODO(?): drop moves which explode our king here let steps = [ [-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1] ]; for (let step of steps) { let x = m.end.x + step[0]; let y = m.end.y + step[1]; - if (x>=0 && x<8 && y>=0 && y<8 && this.board[x][y] != VariantRules.EMPTY - && this.getPiece(x,y) != VariantRules.PAWN) + if (V.OnBoard(x,y) && this.board[x][y] != V.EMPTY + && this.getPiece(x,y) != V.PAWN) { - m.vanish.push(new PiPo({p:this.getPiece(x,y),c:this.getColor(x,y),x:x,y:y})); + m.vanish.push( + new PiPo({p:this.getPiece(x,y),c:this.getColor(x,y),x:x,y:y})); } } m.end = {x:m.appear[0].x, y:m.appear[0].y}; @@ -28,69 +29,58 @@ class AtomicRules extends ChessRules return moves; } - getPotentialKingMoves(x, y, c) + getPotentialKingMoves([x,y]) { // King cannot capture: let moves = []; - let [sizeX,sizeY] = VariantRules.size; - const steps = VariantRules.steps[VariantRules.QUEEN]; + const steps = V.steps[V.ROOK].concat(V.steps[V.BISHOP]); for (let step of steps) { - var i = x + step[0]; - var j = y + step[1]; - if (i>=0 && i=0 && j