X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fvariants%2FMagnetic.js;fp=public%2Fjavascripts%2Fvariants%2FMagnetic.js;h=e126f1cee175f9aafe0691cb70a34802a8a175d6;hb=9e42b4dd8a70b9593cc44ab181b4df32032ca250;hp=d1436c0f3ea4cb66623970d982423d004959bfa1;hpb=e2b216fecd1676fb97c28d5d3c46612c78e04e64;p=vchess.git diff --git a/public/javascripts/variants/Magnetic.js b/public/javascripts/variants/Magnetic.js index d1436c0f..e126f1ce 100644 --- a/public/javascripts/variants/Magnetic.js +++ b/public/javascripts/variants/Magnetic.js @@ -212,4 +212,23 @@ class MagneticRules extends ChessRules // No valid move: our king disappeared return this.turn == "w" ? "0-1" : "1-0"; } + + static get THRESHOLD_MATE() { + return 500; //checkmates evals may be slightly below 1000 + } + + getComputerMove() + { + let moves1 = this.getAllValidMoves(); + // Can I mate in 1 ? + for (let i of _.shuffle(_.range(moves1.length))) + { + this.play(moves1[i]); + const finish = (Math.abs(this.evalPosition()) >= VariantRules.THRESHOLD_MATE); + this.undo(moves1[i]); + if (finish) + return moves1[i]; + } + return super.getComputerMove(moves1); + } }