Janggi: fix computer initial setup move
authorBenjamin Auder <benjamin.auder@somewhere>
Fri, 1 Jan 2021 02:16:23 +0000 (03:16 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Fri, 1 Jan 2021 02:16:23 +0000 (03:16 +0100)
client/src/variants/Janggi.js

index 98660a4..895e23f 100644 (file)
@@ -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"