Some fixes, work on Eightpieces draft, add a few capturing variants
[vchess.git] / client / src / variants / Alice.js
index a92338f..4d6b3c3 100644 (file)
@@ -107,8 +107,7 @@ export const VariantRules = class AliceRules extends ChessRules {
     // Finally filter impossible moves
     const res = moves.filter(m => {
       if (m.appear.length == 2) {
-        //castle
-        // appear[i] must be an empty square on the other board
+        // Castle: appear[i] must be an empty square on the other board
         for (let psq of m.appear) {
           if (this.getSquareOccupation(psq.x, psq.y, 3 - mirrorSide) != V.EMPTY)
             return false;
@@ -126,11 +125,12 @@ export const VariantRules = class AliceRules extends ChessRules {
       // If the move is computed on board1, m.appear change for Alice pieces.
       if (mirrorSide == 1) {
         m.appear.forEach(psq => {
-          //forEach: castling taken into account
+          // forEach: castling taken into account
           psq.p = V.ALICE_CODES[psq.p]; //goto board2
         });
-      } //move on board2: mark vanishing pieces as Alice
+      }
       else {
+        // Move on board2: mark vanishing pieces as Alice
         m.vanish.forEach(psq => {
           psq.p = V.ALICE_CODES[psq.p];
         });
@@ -282,14 +282,21 @@ export const VariantRules = class AliceRules extends ChessRules {
   }
 
   static get VALUES() {
-    return Object.assign(ChessRules.VALUES, {
-      s: 1,
-      u: 5,
-      o: 3,
-      c: 3,
-      t: 9,
-      l: 1000
-    });
+    return Object.assign(
+      {
+        s: 1,
+        u: 5,
+        o: 3,
+        c: 3,
+        t: 9,
+        l: 1000
+      },
+      ChessRules.VALUES
+    );
+  }
+
+  static get SEARCH_DEPTH() {
+    return 2;
   }
 
   getNotation(move) {