Add Rococo variant
[vchess.git] / client / src / variants / Baroque.js
index 016f7b7..74617cf 100644 (file)
@@ -293,12 +293,7 @@ export class BaroqueRules extends ChessRules {
           mergedMoves[key].vanish.push(m.vanish[i]);
       }
     });
-    // Finally return an array
-    moves = [];
-    Object.keys(mergedMoves).forEach(k => {
-      moves.push(mergedMoves[k]);
-    });
-    return moves;
+    return Object.values(mergedMoves);
   }
 
   addQueenCaptures(moves, byChameleon) {
@@ -486,9 +481,10 @@ export class BaroqueRules extends ChessRules {
         V.OnBoard(i, j) &&
         this.board[i][j] != V.EMPTY &&
         this.getColor(i, j) == color &&
-        this.getPiece(i, j) == V.BISHOP
+        this.getPiece(i, j) == V.BISHOP &&
+        !this.isImmobilized([i, j])
       ) {
-        return true; //bishops are never immobilized
+        return true;
       }
     }
     return false;
@@ -532,26 +528,10 @@ export class BaroqueRules extends ChessRules {
     return false;
   }
 
-  static get VALUES() {
-    return {
-      p: 1,
-      r: 2,
-      n: 5,
-      b: 3,
-      q: 3,
-      m: 5,
-      k: 1000
-    };
-  }
-
-  static get SEARCH_DEPTH() {
-    return 2;
-  }
-
   static GenRandInitFen(randomness) {
     if (randomness == 0)
       // Deterministic:
-      return "rnbqkbnrm/pppppppp/8/8/8/8/PPPPPPPP/MNBKQBNR w 0";
+      return "rnbkqbnm/pppppppp/8/8/8/8/PPPPPPPP/MNBQKBNR w 0";
 
     let pieces = { w: new Array(8), b: new Array(8) };
     // Shuffle pieces on first and last rank
@@ -574,6 +554,22 @@ export class BaroqueRules extends ChessRules {
     );
   }
 
+  static get VALUES() {
+    return {
+      p: 1,
+      r: 2,
+      n: 5,
+      b: 3,
+      q: 3,
+      m: 5,
+      k: 1000
+    };
+  }
+
+  static get SEARCH_DEPTH() {
+    return 2;
+  }
+
   getNotation(move) {
     const initialSquare = V.CoordsToSquare(move.start);
     const finalSquare = V.CoordsToSquare(move.end);