static get CanAnalyze() {
return true;
}
+ // Patch: issues with javascript OOP, objects can't access static fields.
+ get canAnalyze() {
+ return V.CanAnalyze;
+ }
// Some variants show incomplete information,
// and thus show only a partial moves list or no list at all.
static get ShowMoves() {
return "all";
}
-
- // Path to pieces
- static getPpath(b) {
- return b; //usual pieces in pieces/ folder
+ get showMoves() {
+ return V.ShowMoves;
}
// Turn "wb" into "B" (for FEN)
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;
pieces[c][knight2Pos] = "n";
pieces[c][rook2Pos] = "r";
}
+ // Add turn + flags + enpassant
return (
pieces["b"].join("") +
"/pppppppp/8/8/8/8/PPPPPPPP/" +
pieces["w"].join("").toUpperCase() +
" w 0 1111 -"
- ); //add turn + flags + enpassant
+ );
}
// "Parse" FEN: just return untransformed string data
for (let indexInRow = 0; indexInRow < rows[i].length; indexInRow++) {
const character = rows[i][indexInRow];
const num = parseInt(character);
+ // If num is a number, just shift j:
if (!isNaN(num)) j += num;
- //just shift j
- //something at position i,j
+ // Else: something at position i,j
else board[i][j++] = V.fen2board(character);
}
}
// 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
// TODO: un-ambiguous notation (switch on piece type, check directions...)
getNotation(move) {
if (move.appear.length == 2 && move.appear[0].p == V.KING)
- //castle
+ // Castle
return move.end.y < move.start.y ? "0-0-0" : "0-0";
// Translate final square