A few fixes. Draft Synchrone2 (not working at all right now)
[vchess.git] / client / src / base_rules.js
index 5f47904..e9ea7bc 100644 (file)
@@ -158,7 +158,7 @@ export const ChessRules = class ChessRules {
 
   // Turn "p" into "bp" (for board)
   static fen2board(f) {
-    return f.charCodeAt() <= 90 ? "w" + f.toLowerCase() : "b" + f;
+    return f.charCodeAt(0) <= 90 ? "w" + f.toLowerCase() : "b" + f;
   }
 
   // Check if FEN describes a board situation correctly
@@ -528,6 +528,7 @@ export const ChessRules = class ChessRules {
   }
 
   // Scan board for kings positions
+  // TODO: should be done from board, no need for the complete FEN
   scanKings(fen) {
     // Squares of white and black king:
     this.kingPos = { w: [-1, -1], b: [-1, -1] };
@@ -1073,7 +1074,7 @@ export const ChessRules = class ChessRules {
         this.board[rx][ry] != V.EMPTY &&
         this.getPiece(rx, ry) == piece &&
         this.getColor(rx, ry) == color &&
-        this.canTake([rx, ry], [x, y])
+        this.canTake([rx, ry], [x, y]) //for Paco-Sako (TODO: necessary?)
       ) {
         return true;
       }
@@ -1173,6 +1174,7 @@ export const ChessRules = class ChessRules {
   }
 
   updateCastleFlags(move, piece, color) {
+    // TODO: check flags. If already off, no need to always re-evaluate
     const c = color || V.GetOppCol(this.turn);
     const firstRank = (c == "w" ? V.size.x - 1 : 0);
     // Update castling flags if rooks are moved