Add Progressive2 + fix knightrider translations
authorBenjamin Auder <benjamin.auder@somewhere>
Wed, 15 Jul 2020 12:28:47 +0000 (14:28 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Wed, 15 Jul 2020 12:28:47 +0000 (14:28 +0200)
22 files changed:
client/src/translations/en.js
client/src/translations/es.js
client/src/translations/fr.js
client/src/translations/rules/Checkered2/en.pug
client/src/translations/rules/Checkered2/es.pug
client/src/translations/rules/Checkered2/fr.pug
client/src/translations/rules/Enpassant/es.pug
client/src/translations/rules/Enpassant/fr.pug
client/src/translations/rules/Progressive1/en.pug [moved from client/src/translations/rules/Progressive/en.pug with 100% similarity]
client/src/translations/rules/Progressive1/es.pug [moved from client/src/translations/rules/Progressive/es.pug with 100% similarity]
client/src/translations/rules/Progressive1/fr.pug [moved from client/src/translations/rules/Progressive/fr.pug with 100% similarity]
client/src/translations/rules/Progressive2/en.pug [new file with mode: 0644]
client/src/translations/rules/Progressive2/es.pug [new file with mode: 0644]
client/src/translations/rules/Progressive2/fr.pug [new file with mode: 0644]
client/src/translations/rules/Royalrace/es.pug
client/src/translations/rules/Royalrace/fr.pug
client/src/translations/variants/en.pug
client/src/translations/variants/es.pug
client/src/translations/variants/fr.pug
client/src/variants/Progressive1.js [moved from client/src/variants/Progressive.js with 98% similarity]
client/src/variants/Progressive2.js [new file with mode: 0644]
server/db/populate.sql

index 42112a4..e088adf 100644 (file)
@@ -237,7 +237,8 @@ export const translations = {
   "Pawns move diagonally": "Pawns move diagonally",
   "Pieces upside down": "Pieces upside down",
   "Play at the same time": "Play at the same time",
   "Pawns move diagonally": "Pawns move diagonally",
   "Pieces upside down": "Pieces upside down",
   "Play at the same time": "Play at the same time",
-  "Play more and more moves": "Play more and more moves",
+  "Play more and more moves (v1)": "Play more and more moves (v1)",
+  "Play more and more moves (v2)": "Play more and more moves (v2)",
   "Play opponent's pieces": "Play opponent's pieces",
   "Powerful pieces": "Powerful pieces",
   "Prolongated captures": "Prolongated captures",
   "Play opponent's pieces": "Play opponent's pieces",
   "Powerful pieces": "Powerful pieces",
   "Prolongated captures": "Prolongated captures",
index 379daae..605f501 100644 (file)
@@ -237,7 +237,8 @@ export const translations = {
   "Pawns move diagonally": "Peones se mueven en diagonal",
   "Pieces upside down": "Piezas al revés",
   "Play at the same time": "Jugar al mismo tiempo",
   "Pawns move diagonally": "Peones se mueven en diagonal",
   "Pieces upside down": "Piezas al revés",
   "Play at the same time": "Jugar al mismo tiempo",
-  "Play more and more moves": "Jugar más y más movimientos",
+  "Play more and more moves (v1)": "Jugar más y más movimientos (v1)",
+  "Play more and more moves (v2)": "Jugar más y más movimientos (v2)",
   "Play opponent's pieces": "Jugar piezas opuestas",
   "Powerful pieces": "Piezas poderosas",
   "Prolongated captures": "Capturas extendidas",
   "Play opponent's pieces": "Jugar piezas opuestas",
   "Powerful pieces": "Piezas poderosas",
   "Prolongated captures": "Capturas extendidas",
index dce0131..a35c4ca 100644 (file)
@@ -237,7 +237,8 @@ export const translations = {
   "Pawns move diagonally": "Les pions vont en diagonale",
   "Pieces upside down": "Pièces à l'envers",
   "Play at the same time": "Jouer en même temps",
   "Pawns move diagonally": "Les pions vont en diagonale",
   "Pieces upside down": "Pièces à l'envers",
   "Play at the same time": "Jouer en même temps",
-  "Play more and more moves": "Jouez de plus en plus de coups",
+  "Play more and more moves (v1)": "Jouez de plus en plus de coups (v1)",
+  "Play more and more moves (v2)": "Jouez de plus en plus de coups (v2)",
   "Play opponent's pieces": "Jouez les pièces adverses",
   "Powerful pieces": "Pièces puissantes",
   "Prolongated captures": "Captures prolongées",
   "Play opponent's pieces": "Jouez les pièces adverses",
   "Powerful pieces": "Pièces puissantes",
   "Prolongated captures": "Captures prolongées",
index 4c004a3..0d0af19 100644 (file)
@@ -4,7 +4,7 @@ p.boxed
 
 p
   | This is the 
 
 p
   | This is the 
-  a(href="/variants/Checkered1") Checkered1 variant
+  a(href="/#/variants/Checkered1") Checkered1 variant
   | , without the stage 2.
   | Probably more drawish, but also quite different.
   | I think both are interesting.
   | , without the stage 2.
   | Probably more drawish, but also quite different.
   | I think both are interesting.
index a93f579..a38eaf2 100644 (file)
@@ -4,7 +4,7 @@ p.boxed
 
 p
   | Esta la 
 
 p
   | Esta la 
-  a(href="/variants/Checkered1") variante Checkered1
+  a(href="/#/variants/Checkered1") variante Checkered1
   | , sin fase 2.
   | Probablemente más canceladoras, pero también bastante diferente.
   | Creo que ambos tienen interés.
   | , sin fase 2.
   | Probablemente más canceladoras, pero también bastante diferente.
   | Creo que ambos tienen interés.
index 5b5de76..4b0b92a 100644 (file)
@@ -4,7 +4,7 @@ p.boxed
 
 p
   | C'est la 
 
 p
   | C'est la 
-  a(href="/variants/Checkered1") variante Checkered1
+  a(href="/#/variants/Checkered1") variante Checkered1
   | , sans la phase 2.
   | Sans doute plus annulant, mais aussi assez différente.
   | Je pense que les deux ont un intérêt.
   | , sans la phase 2.
   | Sans doute plus annulant, mais aussi assez différente.
   | Je pense que les deux ont un intérêt.
index 50770d1..efc974f 100644 (file)
@@ -27,9 +27,9 @@ h3 Movimientos especiales
 
 ul
   li.
 
 ul
   li.
-    Los caballos se convierten en caballeros, capaces de realizar varias
-    saltos en la misma dirección.
-    Por ejemplo en la posición inicial, el caballero en g1 puede ir a e5
+    Los caballos se convierten en caballos de la noche (o noctámbulos),
+    capaces de realizar varias saltos en la misma dirección.
+    Por ejemplo en la posición inicial, el noctámbulo en g1 puede ir a e5
     o podría tomar en d7 además de los movimientos de caballo.
   li.
     El rey puede capturar una pieza en passant haciendo
     o podría tomar en d7 además de los movimientos de caballo.
   li.
     El rey puede capturar una pieza en passant haciendo
@@ -39,7 +39,7 @@ figure.diagram-container
   .diagram
     | fen:rnbqk1nr/ppppppbp/6p1/8/8/2NP5/PPP1PPPP/R1BQKBNR h3,f3,e5,d7:
   figcaption.
   .diagram
     | fen:rnbqk1nr/ppppppbp/6p1/8/8/2NP5/PPP1PPPP/R1BQKBNR h3,f3,e5,d7:
   figcaption.
-    Posibles jugadas de caballero después de 1.d3 g6 2.Nc3 Bg7.
+    Posibles jugadas de noctámbulo después de 1.d3 g6 2.Nc3 Bg7.
     Si 3.Nxd7, 3...Bxe5 e.p. es posible.
 
 p.
     Si 3.Nxd7, 3...Bxe5 e.p. es posible.
 
 p.
@@ -53,7 +53,7 @@ p.
 figure.diagram-container
   .diagram
     | fen:nbqnbrkr/pppppppp/8/8/8/8/PPPPPPPP/RNKBQNBR:
 figure.diagram-container
   .diagram
     | fen:nbqnbrkr/pppppppp/8/8/8/8/PPPPPPPP/RNKBQNBR:
-  figcaption 1.Nxe7# y 1...Nxg2: "anomalías de caballeros".
+  figcaption 1.Nxe7# y 1...Nxg2: "anomalías de noctámbulos".
 
 h3 Fuente
 
 
 h3 Fuente
 
index 1a818f7..d598e84 100644 (file)
@@ -28,10 +28,10 @@ h3 Coups spéciaux
 
 ul
   li.
 
 ul
   li.
-    Les cavaliers deviennent des chevaliers, pouvant effectuer plusieurs
-    déplacements de cavalier dans la même direction.
-    Par exemple dans la position initiale, le chevalier en g1 peut aller
-    en e5 ou pourrait prendre en d7 en plus des coups de cavalier.
+    Les cavaliers deviennent des cavaliers de la nuit (ou noctambules),
+    pouvant effectuer plusieurs déplacements de cavalier dans la même
+    direction. Par exemple dans la position initiale, le noctambule en g1 peut
+    aller en e5 ou pourrait prendre en d7 en plus des coups de cavalier.
   li.
     Le roi peut capturer une pièce en passant en effectuant
     un coup de cavalier.
   li.
     Le roi peut capturer une pièce en passant en effectuant
     un coup de cavalier.
@@ -40,7 +40,7 @@ figure.diagram-container
   .diagram
     | fen:rnbqk1nr/ppppppbp/6p1/8/8/2NP5/PPP1PPPP/R1BQKBNR h3,f3,e5,d7:
   figcaption.
   .diagram
     | fen:rnbqk1nr/ppppppbp/6p1/8/8/2NP5/PPP1PPPP/R1BQKBNR h3,f3,e5,d7:
   figcaption.
-    Possibles coups de chevalier après 1.d3 g6 2.Nc3 Bg7.
+    Possibles coups de noctambule après 1.d3 g6 2.Nc3 Bg7.
     Si 3.Nxd7, 3...Bxe5 e.p. est possible.
 
 p.
     Si 3.Nxd7, 3...Bxe5 e.p. est possible.
 
 p.
@@ -53,7 +53,7 @@ p.
 figure.diagram-container
   .diagram
     | fen:nbqnbrkr/pppppppp/8/8/8/8/PPPPPPPP/RNKBQNBR:
 figure.diagram-container
   .diagram
     | fen:nbqnbrkr/pppppppp/8/8/8/8/PPPPPPPP/RNKBQNBR:
-  figcaption 1.Nxe7# et 1...Nxg2 : "anomalies de chevaliers".
+  figcaption 1.Nxe7# et 1...Nxg2 : "anomalies de noctambules".
 
 h3 Source
 
 
 h3 Source
 
diff --git a/client/src/translations/rules/Progressive2/en.pug b/client/src/translations/rules/Progressive2/en.pug
new file mode 100644 (file)
index 0000000..1590c18
--- /dev/null
@@ -0,0 +1,8 @@
+p.boxed
+  | White plays one move, then black play twice,
+  | then white plays three moves...
+
+p
+  Same as 
+  a(href="/#/variants/Progressive1") Progressive1
+  | , but without initial double-step pawn move, and without castling.
diff --git a/client/src/translations/rules/Progressive2/es.pug b/client/src/translations/rules/Progressive2/es.pug
new file mode 100644 (file)
index 0000000..a3f70e9
--- /dev/null
@@ -0,0 +1,8 @@
+p.boxed
+  | Las blancas juegan un movimiento, luego las negras juegan dos veces,
+  | entonces las blancas juegan tres movimientos...
+
+p
+  | Como
+  a(href="/#/variants/Progressive1") Progressive1
+  | , pero sin el doble movimiento inicial de peón, y sin enroque.
diff --git a/client/src/translations/rules/Progressive2/fr.pug b/client/src/translations/rules/Progressive2/fr.pug
new file mode 100644 (file)
index 0000000..6b8248f
--- /dev/null
@@ -0,0 +1,8 @@
+p.boxed
+  | Les blancs jouent un coup, puis les noirs jouent deux fois,
+  | ensuite les blancs jouent trois coups...
+
+p
+  Comme 
+  a(href="/#/variants/Progressive1") Progressive1
+  | , mais sans le double coup initial de pion, et sans roque.
index 634f4b7..584771e 100644 (file)
@@ -21,7 +21,7 @@ h3 Movimientos de piezas adaptadas
 
 ul
   li.
 
 ul
   li.
-    Los caballos se convierten en caballeros:
+    Los caballos se convierten en noctámbulos:
     pueden hacer varios saltos de caballo en la misma dirección.
   li.
     Los peones se mueven como torres.
     pueden hacer varios saltos de caballo en la misma dirección.
   li.
     Los peones se mueven como torres.
index 21f6dae..c0bb36b 100644 (file)
@@ -22,7 +22,7 @@ h3 Déplacements de pièces adaptés
 
 ul
   li.
 
 ul
   li.
-    Les cavaliers deviennent des chevaliers :
+    Les cavaliers deviennent des noctambules :
     ils peuvent effectuer plusieurs sauts de cavalier dans une même direction.
   li.
     Les pions se déplacent comme des tours.
     ils peuvent effectuer plusieurs sauts de cavalier dans une même direction.
   li.
     Les pions se déplacent comme des tours.
index 67227c7..854e5a6 100644 (file)
@@ -339,7 +339,8 @@ p In these variants, you can play two or more moves per turn.
     "Doublemove1",
     "Doublemove2",
     "Monster",
     "Doublemove1",
     "Doublemove2",
     "Monster",
-    "Progressive"
+    "Progressive1",
+    "Progressive2"
   ]
 ul
   for v in varlist
   ]
 ul
   for v in varlist
index a373000..283169c 100644 (file)
@@ -350,7 +350,8 @@ p En estas variantes, puedes jugar dos o más movimientos por turno.
     "Doublemove1",
     "Doublemove2",
     "Monster",
     "Doublemove1",
     "Doublemove2",
     "Monster",
-    "Progressive"
+    "Progressive1",
+    "Progressive2"
   ]
 ul
   for v in varlist
   ]
 ul
   for v in varlist
index 72e481a..26835cb 100644 (file)
@@ -349,7 +349,8 @@ p Dans ces variantes, vous pouvez jouer deux coups ou plus par tour.
     "Doublemove1",
     "Doublemove2",
     "Monster",
     "Doublemove1",
     "Doublemove2",
     "Monster",
-    "Progressive"
+    "Progressive1",
+    "Progressive2"
   ]
 ul
   for v in varlist
   ]
 ul
   for v in varlist
similarity index 98%
rename from client/src/variants/Progressive.js
rename to client/src/variants/Progressive1.js
index 6765428..4f69ee9 100644 (file)
@@ -1,7 +1,7 @@
 import { ChessRules } from "@/base_rules";
 import { randInt } from "@/utils/alea";
 
 import { ChessRules } from "@/base_rules";
 import { randInt } from "@/utils/alea";
 
-export class ProgressiveRules extends ChessRules {
+export class Progressive1Rules extends ChessRules {
   static get HasEnpassant() {
     return false;
   }
   static get HasEnpassant() {
     return false;
   }
diff --git a/client/src/variants/Progressive2.js b/client/src/variants/Progressive2.js
new file mode 100644 (file)
index 0000000..ffc22bc
--- /dev/null
@@ -0,0 +1,51 @@
+import { Progressive1Rules } from "@/variants/Progressive1";
+import { SuicideRules } from "@/variants/Suicide";
+import { ChessRules } from "@/base_rules";
+import { randInt } from "@/utils/alea";
+
+export class Progressive2Rules extends Progressive1Rules {
+  static get PawnSpecs() {
+    return Object.assign(
+      {},
+      ChessRules.PawnSpecs,
+      { twoSquares: false }
+    );
+  }
+
+  static get HasFlags() {
+    return false;
+  }
+
+  postPlay(move) {
+    const c = move.turn[0];
+    const piece = move.vanish[0].p;
+    if (piece == V.KING && move.appear.length > 0) {
+      this.kingPos[c][0] = move.appear[0].x;
+      this.kingPos[c][1] = move.appear[0].y;
+    }
+  }
+
+  undo(move) {
+    this.disaggregateFlags(JSON.parse(move.flags));
+    V.UndoOnBoard(this.board, move);
+    if (this.turn != move.turn[0]) this.movesCount--;
+    this.turn = move.turn[0];
+    this.subTurn = move.turn[1];
+    super.postUndo(move);
+  }
+
+  static GenRandInitFen(randomness) {
+    return SuicideRules.GenRandInitFen(randomness);
+  }
+
+  static get VALUES() {
+    return {
+      p: 1,
+      r: 5,
+      n: 3,
+      b: 3,
+      q: 7, //slightly less than in orthodox game
+      k: 1000
+    };
+  }
+};
index f55889a..1543847 100644 (file)
@@ -85,7 +85,8 @@ insert or ignore into Variants (name, description) values
   ('Pawnsking', 'Reach the last rank (v2)'),
   ('Perfect', 'Powerful pieces'),
   ('Pocketknight', 'Knight in pocket'),
   ('Pawnsking', 'Reach the last rank (v2)'),
   ('Perfect', 'Powerful pieces'),
   ('Pocketknight', 'Knight in pocket'),
-  ('Progressive', 'Play more and more moves'),
+  ('Progressive1', 'Play more and more moves (v1)'),
+  ('Progressive2', 'Play more and more moves (v2)'),
   ('Queenpawns', 'Queen versus pawns'),
   ('Racingkings', 'Kings cross the 8x8 board'),
   ('Rampage', 'Move under cover'),
   ('Queenpawns', 'Queen versus pawns'),
   ('Racingkings', 'Kings cross the 8x8 board'),
   ('Rampage', 'Move under cover'),