X-Git-Url: https://git.auder.net/assets/icon_infos.svg?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FMagnetic.js;h=ec2c975207d176d2edbff4e98ac8442f136b778c;hb=3ad85eac7975eef019f2883fe0be19ed4a646387;hp=4d83fad156f4fa54bad68e22ed8ae45e3002ff18;hpb=5bbf449c738b243bdfdecb8b810cdc281d8e9de0;p=vchess.git diff --git a/public/javascripts/variants/Magnetic.js b/public/javascripts/variants/Magnetic.js index 4d83fad1..ec2c9752 100644 --- a/public/javascripts/variants/Magnetic.js +++ b/public/javascripts/variants/Magnetic.js @@ -137,10 +137,11 @@ class MagneticRules extends ChessRules return moves; } - // TODO: verify this assertion atLeastOneMove() { - return true; //always at least one possible move + if (this.kingPos[this.turn][0] < 0) + return false; + return true; //TODO: is it right? } underCheck(move) @@ -165,8 +166,8 @@ class MagneticRules extends ChessRules { super.updateVariables(move); const c = this.getColor(move.start.x,move.start.y); - if (c != this.getColor(move.end.x,move.end.y) - && this.board[move.end.x][move.end.y] != VariantRules.EMPTY + if (this.board[move.end.x][move.end.y] != VariantRules.EMPTY + && c != this.getColor(move.end.x,move.end.y) && this.getPiece(move.end.x,move.end.y) == VariantRules.KING) { // We took opponent king ! @@ -174,7 +175,7 @@ class MagneticRules extends ChessRules this.kingPos[oppCol] = [-1,-1]; this.castleFlags[oppCol] = [false,false]; } - // Did we move our (init) rooks or opponents' ones ? + // Did we magnetically move our (init) rooks or opponents' ones ? const firstRank = (c == "w" ? 7 : 0); const oppFirstRank = 7 - firstRank; const oppCol = this.getOppCol(c); @@ -205,19 +206,6 @@ class MagneticRules extends ChessRules } } - checkGameOver() - { - if (this.checkRepetition()) - return "1/2"; - - const color = this.turn; - // TODO: do we need "atLeastOneMove()"? - if (this.atLeastOneMove() && this.kingPos[color][0] >= 0) - return "*"; - - return this.checkGameEnd(); - } - checkGameEnd() { // No valid move: our king disappeared