projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
A few fixes (for updateCastleFlags()) + add Madhouse and Pocketknight variants
[vchess.git]
/
client
/
src
/
base_rules.js
diff --git
a/client/src/base_rules.js
b/client/src/base_rules.js
index
ee13d5e
..
9ee506e
100644
(file)
--- a/
client/src/base_rules.js
+++ b/
client/src/base_rules.js
@@
-158,7
+158,7
@@
export const ChessRules = class ChessRules {
// 2) Check turn
if (!fenParsed.turn || !V.IsGoodTurn(fenParsed.turn)) return false;
// 3) Check moves count
// 2) Check turn
if (!fenParsed.turn || !V.IsGoodTurn(fenParsed.turn)) return false;
// 3) Check moves count
- if (!fenParsed.movesCount || !(parseInt(fenParsed.movesCount) >= 0))
+ if (!fenParsed.movesCount || !(parseInt(fenParsed.movesCount
, 10
) >= 0))
return false;
// 4) Check flags
if (V.HasFlags && (!fenParsed.flags || !V.IsGoodFlags(fenParsed.flags)))
return false;
// 4) Check flags
if (V.HasFlags && (!fenParsed.flags || !V.IsGoodFlags(fenParsed.flags)))
@@
-185,7
+185,7
@@
export const ChessRules = class ChessRules {
if (['K','k'].includes(row[i])) kings[row[i]]++;
if (V.PIECES.includes(row[i].toLowerCase())) sumElts++;
else {
if (['K','k'].includes(row[i])) kings[row[i]]++;
if (V.PIECES.includes(row[i].toLowerCase())) sumElts++;
else {
- const num = parseInt(row[i]);
+ const num = parseInt(row[i]
, 10
);
if (isNaN(num)) return false;
sumElts += num;
}
if (isNaN(num)) return false;
sumElts += num;
}
@@
-232,7
+232,7
@@
export const ChessRules = class ChessRules {
return {
// NOTE: column is always one char => max 26 columns
// row is counted from black side => subtraction
return {
// NOTE: column is always one char => max 26 columns
// row is counted from black side => subtraction
- x: V.size.x - parseInt(sq.substr(1)),
+ x: V.size.x - parseInt(sq.substr(1)
, 10
),
y: sq[0].charCodeAt() - 97
};
}
y: sq[0].charCodeAt() - 97
};
}
@@
-480,7
+480,7
@@
export const ChessRules = class ChessRules {
let j = 0;
for (let indexInRow = 0; indexInRow < rows[i].length; indexInRow++) {
const character = rows[i][indexInRow];
let j = 0;
for (let indexInRow = 0; indexInRow < rows[i].length; indexInRow++) {
const character = rows[i][indexInRow];
- const num = parseInt(character);
+ const num = parseInt(character
, 10
);
// If num is a number, just shift j:
if (!isNaN(num)) j += num;
// Else: something at position i,j
// If num is a number, just shift j:
if (!isNaN(num)) j += num;
// Else: something at position i,j
@@
-512,7
+512,7
@@
export const ChessRules = class ChessRules {
const fenParsed = V.ParseFen(fen);
this.board = V.GetBoard(fenParsed.position);
this.turn = fenParsed.turn;
const fenParsed = V.ParseFen(fen);
this.board = V.GetBoard(fenParsed.position);
this.turn = fenParsed.turn;
- this.movesCount = parseInt(fenParsed.movesCount);
+ this.movesCount = parseInt(fenParsed.movesCount
, 10
);
this.setOtherVariables(fen);
}
this.setOtherVariables(fen);
}
@@
-536,7
+536,7
@@
export const ChessRules = class ChessRules {
this.INIT_COL_KING["w"] = k;
break;
default: {
this.INIT_COL_KING["w"] = k;
break;
default: {
- const num = parseInt(fenRows[i].charAt(j));
+ const num = parseInt(fenRows[i].charAt(j)
, 10
);
if (!isNaN(num)) k += num - 1;
}
}
if (!isNaN(num)) k += num - 1;
}
}
@@
-1169,8
+1169,8
@@
export const ChessRules = class ChessRules {
this.postPlay(move);
}
this.postPlay(move);
}
- updateCastleFlags(move, piece) {
- const c = V.GetOppCol(this.turn);
+ updateCastleFlags(move, piece
, color
) {
+ const c =
color ||
V.GetOppCol(this.turn);
const firstRank = (c == "w" ? V.size.x - 1 : 0);
// Update castling flags if rooks are moved
const oppCol = this.turn;
const firstRank = (c == "w" ? V.size.x - 1 : 0);
// Update castling flags if rooks are moved
const oppCol = this.turn;