X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fvariants%2FJanggi.js;h=895e23ff06ce136ffbd2fcf3b8767a8873ae401e;hb=ac4e2cabce7a0faeceaa646d31721161bd4a8cf4;hp=98660a4bf08428d9a8e224697713a394a6f756dc;hpb=7c4828992dc2b9e1ea60cd8db18c4c51dbd25fc4;p=vchess.git diff --git a/client/src/variants/Janggi.js b/client/src/variants/Janggi.js index 98660a4b..895e23ff 100644 --- a/client/src/variants/Janggi.js +++ b/client/src/variants/Janggi.js @@ -1,4 +1,5 @@ import { ChessRules, Move, PiPo } from "@/base_rules"; +import { randInt } from "@/utils/alea"; export class JanggiRules extends ChessRules { @@ -590,6 +591,24 @@ export class JanggiRules extends ChessRules { if (move.vanish.length > 0) super.postUndo(move); } + getComputerMove() { + if (this.movesCount <= 1) { + // Special case: swap and pass at random + const moves1 = this.getAllValidMoves(); + const m1 = moves1[randInt(moves1.length)]; + this.play(m1); + if (m1.vanish.length == 0) { + this.undo(m1); + return m1; + } + const moves2 = this.getAllValidMoves(); + const m2 = moves2[randInt(moves2.length)]; + this.undo(m1); + return [m1, m2]; + } + return super.getComputerMove(); + } + getNotation(move) { if (move.vanish.length == 0) return "pass"; if (move.appear.length == 2) return "S"; //"swap"