var board = null;
var history = [];
var move_override = 0;
+var includetransp = true;
var entity_map = {
"&": "&",
});
}
-var get_game = function() {
+var get_game = function(skip_last_move) {
+ var moves_to_drop = 0;
+ if (skip_last_move === true) {
+ moves_to_drop = 1;
+ }
+
var game = new Chess();
- for (var i = 0; i < move_override; ++i) {
+ for (var i = 0; i < move_override - moves_to_drop; ++i) {
game.move(history[i]);
}
return game;
var game = get_game();
board.position(game.fen());
+
+ var all_moves = game.history({ verbose: true });
+ if (all_moves.length > 0) {
+ var last_move = all_moves.pop();
+ var highlight_from = last_move.from;
+ var highlight_to = last_move.to;
+ $("#board").find('.square-55d63').removeClass('nonuglyhighlight');
+ $("#board").find('.square-' + highlight_from).addClass('nonuglyhighlight');
+ $("#board").find('.square-' + highlight_to).addClass('nonuglyhighlight');
+ }
+
fetch_analysis();
}
var fetch_analysis = function() {
var game = get_game();
+ var fen = game.fen();
$.ajax({
- url: "/opening-stats.pl?fen=" + encodeURIComponent(game.fen())
+ url: "/opening-stats.pl?fen=" + encodeURIComponent(fen) +
+ ";includetransp=" + (includetransp ? 1 : 0)
}).done(function(data, textstatus, xhr) {
show_lines(data, game);
});
}
}
+var set_includetransp = function(value) {
+ includetransp = value;
+ update();
+}
+window['set_includetransp'] = set_includetransp;
+
var make_move = function(move) {
if (move_override < history.length && history[move_override] == move) {
// User effectively only moved forward in history.
history.push(new_history[i].san);
}
move_override = history.length;
- update();
};
// update the board position after the piece snap
var onSnapEnd = function() {
var game = get_game();
board.position(game.fen());
- fetch_analysis();
+ update();
};
var init = function() {