Fix Gridolina isAttacked()
authorBenjamin Auder <benjamin.auder@somewhere>
Wed, 22 Apr 2020 13:09:37 +0000 (15:09 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Wed, 22 Apr 2020 13:09:37 +0000 (15:09 +0200)
TODO
client/src/variants/Chakart.js
client/src/variants/Gridolina.js

diff --git a/TODO b/TODO
index 886aaf3..3c6a3ac 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,6 +10,10 @@ https://www.chessvariants.com/crossover.dir/koopachess.html
 --> Can a stunned piece capture? Maybe not. ...recover? After 5 moves? Never?
 + Chakart :)
 
+Name ?
+you need to win all the pawns to win the game
+kings are not royal
+
 https://www.chessvariants.com/diffmove.dir/checkers.html --> "Forward"
 in 1974 by Hans Multhopp
 
index a1caed4..8c0a837 100644 (file)
@@ -32,7 +32,7 @@ export class ChakartRules extends ChessRules {
     //  dessus une pièce immédiatement adjacente (en atterissant juste derrière).
   }
 
-  // Coups en 2 temps (si pose)
+  // Coups en 2 temps (si pose possible)
   getPotentialRookMoves(sq) {
     //Donkey : tour
     //  pose une banane (optionnel) sur une case adjacente (diagonale) à celle d'arrivée
index fd43be3..797190c 100644 (file)
@@ -34,4 +34,24 @@ export class GridolinaRules extends BerolinaRules {
       })
     );
   }
+
+  isAttackedBySlideNJump([x, y], color, piece, steps, oneStep) {
+    for (let step of steps) {
+      let rx = x + step[0],
+          ry = y + step[1];
+      while (V.OnBoard(rx, ry) && this.board[rx][ry] == V.EMPTY && !oneStep) {
+        rx += step[0];
+        ry += step[1];
+      }
+      if (
+        V.OnBoard(rx, ry) &&
+        this.getPiece(rx, ry) == piece &&
+        this.getColor(rx, ry) == color &&
+        V.OnDifferentGrids([x, y], [rx, ry])
+      ) {
+        return true;
+      }
+    }
+    return false;
+  }
 };