MarseilleRules OK
authorBenjamin Auder <benjamin.auder@somewhere>
Wed, 26 Dec 2018 00:26:38 +0000 (01:26 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Wed, 26 Dec 2018 00:26:38 +0000 (01:26 +0100)
public/javascripts/components/game.js
public/javascripts/variants/Marseille.js

index 1a3d237..d8f06b3 100644 (file)
@@ -1120,6 +1120,8 @@ Vue.component('my-game', {
                const self = this;
                this.compWorker.onmessage = function(e) {
                        let compMove = e.data;
+                       if (!compMove)
+                               return; //may happen if MarseilleRules and subTurn==2 (TODO: a bit ugly...)
                        if (!Array.isArray(compMove))
                                compMove = [compMove]; //to deal with MarseilleRules
                        // TODO: imperfect attempt to avoid ghost move:
@@ -1133,8 +1135,8 @@ Vue.component('my-game', {
                                if (compMove.length == 2)
                                        setTimeout( () => {
                                                if (self.mode == "computer")
-                                                       self.play(compMove[1]);
-                                       }, 2000);
+                                                       self.play(compMove[1], "animate");
+                                       }, 750);
                        }, delay);
                }
        },
index 7ac928f..02daa22 100644 (file)
@@ -230,6 +230,9 @@ class MarseilleRules extends ChessRules
        // No alpha-beta here, just adapted min-max at depth 2(+1)
        getComputerMove()
        {
+               if (this.subTurn == 2)
+                       return null; //TODO: imperfect interface setup
+
                const maxeval = V.INFINITY;
                const color = this.turn;
                const oppCol = this.getOppCol(this.turn);
@@ -306,6 +309,7 @@ class MarseilleRules extends ChessRules
                {
                        candidates.push(i);
                }
+
                const selected = doubleMoves[_.sample(candidates, 1)].moves;
                if (selected.length == 1)
                        return selected[0];