X-Git-Url: https://git.auder.net/js/rpsls.js?a=blobdiff_plain;f=client%2Fsrc%2Fbase_rules.js;h=7e4057bbe6b78f0266d4885fccbdef85fc2f3520;hb=78d64531113d4b5045ff588dd43f301a332ebae8;hp=656f7019c5c8f0beac84467b795535e2e2cb7a78;hpb=9bd6786b863c31c3ccd0057b87cf454c90886056;p=vchess.git diff --git a/client/src/base_rules.js b/client/src/base_rules.js index 656f7019..7e4057bb 100644 --- a/client/src/base_rules.js +++ b/client/src/base_rules.js @@ -968,6 +968,8 @@ export const ChessRules = class ChessRules { // 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 @@ -978,9 +980,8 @@ export const ChessRules = class ChessRules { 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; @@ -1055,7 +1056,6 @@ export const ChessRules = class ChessRules { // What is the score ? (Interesting if game is over) getCurrentScore() { if (this.atLeastOneMove()) - // game not over return "*"; // Game over @@ -1266,10 +1266,10 @@ export const ChessRules = class ChessRules { // 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) - //promotion + // Promotion notation += "=" + move.appear[0].p.toUpperCase(); return notation; }