X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fbase_rules.js;h=e886273698e9a423e2399868b1aa667415bbcddf;hb=6752407b88b6d7678b9b19df4ffe1224d17625d7;hp=360f60c53487bb49210ad5ad2d406593d93e7505;hpb=1221ac47836806efb287b0323b92957d9129c653;p=vchess.git
diff --git a/public/javascripts/base_rules.js b/public/javascripts/base_rules.js
index 360f60c5..e8862736 100644
--- a/public/javascripts/base_rules.js
+++ b/public/javascripts/base_rules.js
@@ -726,7 +726,7 @@ class ChessRules
// if (!ingame) this.states.push(JSON.stringify(this.board));
if (!!ingame)
- move.notation = this.getNotation(move);
+ move.notation = [this.getNotation(move), this.getLongNotation(move)];
move.flags = JSON.stringify(this.flags); //save flags (for undo)
this.updateVariables(move);
@@ -1110,6 +1110,16 @@ class ChessRules
}
}
+ // Complete the usual notation, may be required for de-ambiguification
+ getLongNotation(move)
+ {
+ const startSquare =
+ String.fromCharCode(97 + move.start.y) + (VariantRules.size[0]-move.start.x);
+ const finalSquare =
+ String.fromCharCode(97 + move.end.y) + (VariantRules.size[0]-move.end.x);
+ return startSquare + finalSquare; //not encoding move. But short+long is enough
+ }
+
// The score is already computed when calling this function
getPGN(mycolor, score, fenStart, mode)
{
@@ -1124,14 +1134,24 @@ class ChessRules
pgn += '[Fen "' + fenStart + '"]
';
pgn += '[Result "' + score + '"]
';
+ // Standard PGN
for (let i=0; i
";
+ // "Complete moves" PGN (helping in ambiguous cases)
+ for (let i=0; i