Write Royalrace rules
authorBenjamin Auder <benjamin.auder@somewhere>
Tue, 25 Feb 2020 13:57:02 +0000 (14:57 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Tue, 25 Feb 2020 13:57:02 +0000 (14:57 +0100)
client/src/components/ComputerGame.vue
client/src/translations/rules/Royalrace/en.pug
client/src/translations/rules/Royalrace/es.pug
client/src/translations/rules/Royalrace/fr.pug
client/src/variants/Royalrace.js

index c05eea0..1181971 100644 (file)
@@ -72,13 +72,14 @@ export default {
         game = {
           vname: this.gameInfo.vname,
           fenStart: V.GenRandInitFen(),
-          mycolor: Math.random() < 0.5 ? "w" : "b",
           moves: []
         };
         game.fen = game.fenStart;
         if (this.gameInfo.mode == "versus")
           CompgameStorage.add(game);
       }
+      if (this.gameInfo.mode == "versus" && !game.mycolor)
+        game.mycolor = Math.random() < 0.5 ? "w" : "b";
       this.compWorker.postMessage(["init", game.fen]);
       this.vr = new V(game.fen);
       game.players = [{ name: "Myself" }, { name: "Computer" }];
index e9c796a..2a1bd23 100644 (file)
@@ -2,7 +2,29 @@ p.boxed
   | Bring your king to the other side of the board.
   | Giving check is not allowed.
 
-p TODO
+p.
+  The board is of size 11 by 11, and to win your king must arrive on the 11th rank.
+  He can never be in check (thus there is no checkmate).
+  Stalemate would be a draw, but it seldom occur in this variant.
+
+p.
+  The basic strategy is to erect barriers on the way of the opponent king,
+  with rooks and queen for example, while your king advance next to it.
+
+figure.diagram-container
+  .diagram
+    | fen:9r1/1K9/4R6/10k/Q10/2B1RNb2p1/4Pn5/6Nq3/6p1r1n/P10/2B5b2:
+  figcaption White can win by 1.Re8 Rxe8 2.Rxe8 and 3.Ka8 or 3.Kc8.
+
+h3 Adapted pieces movement
+
+ul
+  li.
+    The knights are turned into knightriders:
+    they can make multi knight steps in the same direction.
+  li.
+    The pawns can move as rooks.
+    They still capture one square diagonally, and can also do it backward.
 
 h3 Source
 
index 4f56997..b69f3ec 100644 (file)
@@ -1 +1,36 @@
-p TODO
+p.boxed
+  | Lleva a tu rey al otro lado del tablero.
+  | Las jaques no están permitidas.
+
+p.
+  El tablero de ajedrez mide 11 por 11, y para ganar tu rey debes alcanzar
+  en la 11ma fila.
+  Él nunca puede estar en jaque (por lo que no hay jaque mate).
+  El empate significaría tablas, pero rara vez ocurre en esta variante.
+
+p.
+  La estrategia básica es erigir barreras en el camino del rey contrario,
+  con torres y la dama, por ejemplo, mientras tu rey avanza al lado.
+
+figure.diagram-container
+  .diagram
+    | fen:9r1/1K9/4R6/10k/Q10/2B1RNb2p1/4Pn5/6Nq3/6p1r1n/P10/2B5b2:
+  figcaption Las blancas pueden ganar por 1.Re8 Rxe8 2.Rxe8 y 3.Ka8 o 3.Kc8.
+
+h3 Movimientos de piezas adaptadas
+
+ul
+  li.
+    Los caballos se convierten en caballeros:
+    pueden hacer varios saltos de caballo en la misma dirección.
+  li.
+    Los peones se mueven como torres.
+    Siempre capturan desde un cuadrado diagonal,
+    y también puede hacerlo al revés.
+
+h3 Fuente
+
+p
+  | Fuertemente inspirado por la variante Racing Kings, jugable entre otros
+  a(href="https://lichess.org/variant/racingKings") en lichess
+  | .
index 4f56997..9de7ae0 100644 (file)
@@ -1 +1,36 @@
-p TODO
+p.boxed
+  | Amenez votre roi de l'autre côté de l'échiquier.
+  | Les échecs ne sont pas autorisés.
+
+p.
+  L'échiquier est de taille 11 par 11, et pour gagner votre roi doit parvenir
+  sur la 11eme rangée.
+  Il ne peut jamais être en échec (il n'y a donc pas de mat).
+  Le pat signifierait match nul, mais il arrive très rarement dans cette variante.
+
+p.
+  La stratégie de base consiste à ériger des barrières sur le chemin du roi adverse,
+  avec des tours et la dame par exemple, tandis que votre roi avance à côté.
+
+figure.diagram-container
+  .diagram
+    | fen:9r1/1K9/4R6/10k/Q10/2B1RNb2p1/4Pn5/6Nq3/6p1r1n/P10/2B5b2:
+  figcaption Les blancs peuvent gagner par 1.Re8 Rxe8 2.Rxe8 et 3.Ka8 ou 3.Kc8.
+
+h3 Déplacements de pièces adaptés
+
+ul
+  li.
+    Les cavaliers deviennent des chevaliers :
+    ils peuvent effectuer plusieurs sauts de cavalier dans une même direction.
+  li.
+    Les pions se déplacent comme des tours.
+    Ils capturent toujours d'une case en diagonale,
+    et peuvent aussi le faire en arrière.
+
+h3 Source
+
+p
+  | Fortement inspiré par la variante Racing Kings jouable entre autres
+  a(href="https://lichess.org/variant/racingKings") sur lichess
+  | .
index 1ae531d..e3ed224 100644 (file)
@@ -84,9 +84,11 @@ export const VariantRules = class RoyalraceRules extends ChessRules {
       "11/11/11/11/11/11/11/11/11/" +
       whiteFen.substr(5).split("").reverse().join("") +
       "1" +
-      blackFen.substr(5).split("").reverse().join("") +
+      blackFen.substr(5).split("").join("") +
       "/" +
-      whiteFen.substr(0,5) + "1" + blackFen.substr(0,5) +
+      whiteFen.substr(0,5) +
+      "1" +
+      blackFen.substr(0,5).split("").reverse().join("") +
       " w 0"
     );
   }
@@ -99,15 +101,16 @@ export const VariantRules = class RoyalraceRules extends ChessRules {
         return m.vanish.length == 1;
       });
 
-    // Captures
-    const shiftX = -1;
-    for (let shiftY of [-1, 1]) {
-      if (
-        V.OnBoard(x + shiftX, y + shiftY) &&
-        this.board[x + shiftX][y + shiftY] != V.EMPTY &&
-        this.canTake([x, y], [x + shiftX, y + shiftY])
-      ) {
-        moves.push(this.getBasicMove([x, y], [x + shiftX, y + shiftY]));
+    // Captures (in both directions)
+    for (let shiftX of [-1, 1]) {
+      for (let shiftY of [-1, 1]) {
+        if (
+          V.OnBoard(x + shiftX, y + shiftY) &&
+          this.board[x + shiftX][y + shiftY] != V.EMPTY &&
+          this.canTake([x, y], [x + shiftX, y + shiftY])
+        ) {
+          moves.push(this.getBasicMove([x, y], [x + shiftX, y + shiftY]));
+        }
       }
     }