Attempt to clarify installation instructions a little
[vchess.git] / client / src / variants / Wildebeest.js
index a49da9b..647a234 100644 (file)
@@ -112,10 +112,12 @@ export class WildebeestRules extends ChessRules {
     const [sizeX, sizeY] = [V.size.x, V.size.y];
     const shiftX = color == "w" ? -1 : 1;
     const startRanks = color == "w" ? [sizeX - 2, sizeX - 3] : [1, 2];
-    const lastRank = color == "w" ? 0 : sizeX - 1;
-    const finalPieces = x + shiftX == lastRank
-      ? [V.WILDEBEEST, V.QUEEN]
-      : [V.PAWN];
+    const lastRanks = color == "w" ? [0, 1] : [sizeX - 1, sizeX  -2];
+    let finalPieces = [V.PAWN];
+    if (x + shiftX == lastRanks[1])
+      Array.prototype.push.apply(finalPieces, [V.WILDEBEEST, V.QUEEN]);
+    else if (x + shiftX == lastRanks[0])
+      finalPieces = [V.WILDEBEEST, V.QUEEN];
 
     if (this.board[x + shiftX][y] == V.EMPTY) {
       // One square forward
@@ -179,15 +181,12 @@ export class WildebeestRules extends ChessRules {
   }
 
   getPotentialCamelMoves(sq) {
-    return this.getSlideNJumpMoves(sq, V.steps[V.CAMEL], "oneStep");
+    return this.getSlideNJumpMoves(sq, V.steps[V.CAMEL], 1);
   }
 
   getPotentialWildebeestMoves(sq) {
     return this.getSlideNJumpMoves(
-      sq,
-      V.steps[V.KNIGHT].concat(V.steps[V.CAMEL]),
-      "oneStep"
-    );
+      sq, V.steps[V.KNIGHT].concat(V.steps[V.CAMEL]), 1);
   }
 
   getPPpath(m) {
@@ -274,22 +273,12 @@ export class WildebeestRules extends ChessRules {
 
   isAttackedByCamel(sq, color) {
     return this.isAttackedBySlideNJump(
-      sq,
-      color,
-      V.CAMEL,
-      V.steps[V.CAMEL],
-      "oneStep"
-    );
+      sq, color, V.CAMEL, V.steps[V.CAMEL], 1);
   }
 
   isAttackedByWildebeest(sq, color) {
     return this.isAttackedBySlideNJump(
-      sq,
-      color,
-      V.WILDEBEEST,
-      V.steps[V.KNIGHT].concat(V.steps[V.CAMEL]),
-      "oneStep"
-    );
+      sq, color, V.WILDEBEEST, V.steps[V.KNIGHT].concat(V.steps[V.CAMEL]), 1);
   }
 
   getCurrentScore() {
@@ -309,8 +298,8 @@ export class WildebeestRules extends ChessRules {
     return 2;
   }
 
-  static GenRandInitFen(randomness) {
-    if (randomness == 0) {
+  static GenRandInitFen(options) {
+    if (options.randomness == 0) {
       return (
         "rnccwkqbbnr/ppppppppppp/92/92/92/92/92/92/PPPPPPPPPPP/RNBBQKWCCNR " +
         "w 0 akak -"
@@ -320,7 +309,7 @@ export class WildebeestRules extends ChessRules {
     let pieces = { w: new Array(11), b: new Array(11) };
     let flags = "";
     for (let c of ["w", "b"]) {
-      if (c == 'b' && randomness == 1) {
+      if (c == 'b' && options.randomness == 1) {
         pieces['b'] = pieces['w'];
         flags += flags;
         break;