projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix SuctionChess, draft HiddenRules (unfinished)
[vchess.git]
/
client
/
src
/
base_rules.js
diff --git
a/client/src/base_rules.js
b/client/src/base_rules.js
index
5bf47f7
..
7949d7f
100644
(file)
--- a/
client/src/base_rules.js
+++ b/
client/src/base_rules.js
@@
-53,11
+53,6
@@
export const ChessRules = class ChessRules {
return "all";
}
return "all";
}
- // Path to pieces
- static getPpath(b) {
- return b; //usual pieces in pieces/ folder
- }
-
// Turn "wb" into "B" (for FEN)
static board2fen(b) {
return b[0] == "w" ? b[1].toUpperCase() : b[1];
// Turn "wb" into "B" (for FEN)
static board2fen(b) {
return b[0] == "w" ? b[1].toUpperCase() : b[1];
@@
-160,6
+155,11
@@
export const ChessRules = class ChessRules {
return V.CoordToColumn(coords.y) + (V.size.x - coords.x);
}
return V.CoordToColumn(coords.y) + (V.size.x - coords.x);
}
+ // Path to pieces
+ getPpath(b) {
+ return b; //usual pieces in pieces/ folder
+ }
+
// Aggregates flags into one object
aggregateFlags() {
return this.castleFlags;
// Aggregates flags into one object
aggregateFlags() {
return this.castleFlags;
@@
-379,7
+379,9
@@
export const ChessRules = class ChessRules {
// INITIALIZATION
constructor(fen) {
// INITIALIZATION
constructor(fen) {
- this.re_init(fen);
+ // In printDiagram() fen isn't supply because only getPpath() is used
+ if (fen)
+ this.re_init(fen);
}
// Fen string fully describes the game state
}
// Fen string fully describes the game state
@@
-968,6
+970,8
@@
export const ChessRules = class ChessRules {
// After move is played, update variables + flags
updateVariables(move) {
let piece = undefined;
// After move is played, update variables + flags
updateVariables(move) {
let piece = undefined;
+ // TODO: update variables before move is played, and just use this.turn ?
+ // (doesn't work in general, think MarseilleChess)
let c = undefined;
if (move.vanish.length >= 1) {
// Usual case, something is moved
let c = undefined;
if (move.vanish.length >= 1) {
// Usual case, something is moved
@@
-978,9
+982,8
@@
export const ChessRules = class ChessRules {
piece = move.appear[0].p;
c = move.appear[0].c;
}
piece = move.appear[0].p;
c = move.appear[0].c;
}
- if (c == "c") {
- //if (!["w","b"].includes(c))
- // 'c = move.vanish[0].c' doesn't work for Checkered
+ if (!['w','b'].includes(c)) {
+ // Checkered, for example
c = V.GetOppCol(this.turn);
}
const firstRank = c == "w" ? V.size.x - 1 : 0;
c = V.GetOppCol(this.turn);
}
const firstRank = c == "w" ? V.size.x - 1 : 0;
@@
-1265,10
+1268,10
@@
export const ChessRules = class ChessRules {
// Capture
const startColumn = V.CoordToColumn(move.start.y);
notation = startColumn + "x" + finalSquare;
// Capture
const startColumn = V.CoordToColumn(move.start.y);
notation = startColumn + "x" + finalSquare;
- }
//no capture
+ }
else notation = finalSquare;
if (move.appear.length > 0 && move.appear[0].p != V.PAWN)
else notation = finalSquare;
if (move.appear.length > 0 && move.appear[0].p != V.PAWN)
- //
p
romotion
+ //
P
romotion
notation += "=" + move.appear[0].p.toUpperCase();
return notation;
}
notation += "=" + move.appear[0].p.toUpperCase();
return notation;
}