From: Benjamin Auder Date: Tue, 4 Dec 2018 00:02:37 +0000 (+0100) Subject: Fix and simplify variables update in Atomic X-Git-Url: https://git.auder.net/?p=vchess.git;a=commitdiff_plain;h=1147d89554c96691f3db32ebab7618d31b5b097d Fix and simplify variables update in Atomic --- diff --git a/public/javascripts/components/game.js b/public/javascripts/components/game.js index 6d05a2a6..5c1e6024 100644 --- a/public/javascripts/components/game.js +++ b/public/javascripts/components/game.js @@ -755,8 +755,6 @@ Vue.component('my-game', { this.possibleMoves = this.mode!="idle" && this.vr.canIplay(this.mycolor,startSquare) ? this.vr.getPossibleMovesFrom(startSquare) : []; - console.log(this.possibleMoves); - console.log(this.vr.promoted); e.target.parentNode.appendChild(this.selectedPiece); } }, diff --git a/public/javascripts/variants/Atomic.js b/public/javascripts/variants/Atomic.js index 633e70a9..997a70e1 100644 --- a/public/javascripts/variants/Atomic.js +++ b/public/javascripts/variants/Atomic.js @@ -59,51 +59,31 @@ class AtomicRules extends ChessRules updateVariables(move) { super.updateVariables(move); - - const c = this.getColor(move.start.x,move.start.y); + const color = this.getColor(move.start.x,move.start.y); // Next condition to avoid conflicts with harmless castle moves - if (c != this.getColor(move.end.x,move.end.y) + if (color != this.getColor(move.end.x,move.end.y) && this.board[move.end.x][move.end.y] != VariantRules.EMPTY) { - const oppCol = this.getOppCol(c); - const firstRank = (c == "w" ? 7 : 0); - const oppFirstRank = 7 - firstRank; - - // Did we explode our king ? (TODO: remove move earlier) - if (Math.abs(this.kingPos[c][0]-move.end.x) <= 1 - && Math.abs(this.kingPos[c][1]-move.end.y) <= 1) + const firstRank = {"w": 7, "b": 0}; + for (let c of ["w","b"]) { - this.kingPos[c] = [-1,-1]; - this.castleFlags[c] = [false,false]; - } - else - { - // Now check if our init rook(s) exploded - if (Math.abs(move.end.x-firstRank) <= 1) + // Did we explode king of color c ? (TODO: remove move earlier) + if (Math.abs(this.kingPos[c][0]-move.end.x) <= 1 + && Math.abs(this.kingPos[c][1]-move.end.y) <= 1) { - if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][0]) <= 1) - this.castleFlags[c][0] = false; - if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][1]) <= 1) - this.castleFlags[c][1] = false; + this.kingPos[c] = [-1,-1]; + this.castleFlags[c] = [false,false]; } - } - - // Did we explode opponent king ? - if (Math.abs(this.kingPos[oppCol][0]-move.end.x) <= 1 - && Math.abs(this.kingPos[oppCol][1]-move.end.y) <= 1) - { - this.kingPos[oppCol] = [-1,-1]; - this.castleFlags[oppCol] = [false,false]; - } - else - { - // Now check if opponent init rook(s) exploded - if (Math.abs(move.end.x-oppFirstRank) <= 1) + else { - if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][0]) <= 1) - this.castleFlags[oppCol][0] = false; - if (Math.abs(move.end.y-this.INIT_COL_ROOK[oppCol][1]) <= 1) - this.castleFlags[oppCol][1] = false; + // Now check if init rook(s) exploded + if (Math.abs(move.end.x-firstRank[c]) <= 1) + { + if (Math.abs(move.end.y-this.INIT_COL_ROOK[c][0]) <= 1) + this.castleFlags[c][0] = false; + if (Math.abs(move.end.y-this.INIT_COL_ROOK[c][1]) <= 1) + this.castleFlags[c][1] = false; + } } } }