// the UI should be to expand the history.
pv = '(<a class="move" href="javascript:collapse_history(false)">…</a>) ';
i = pretty_pv.length - opt_limit;
+ if (i < 0) {
+ i = 0;
+ }
if (i % 2 == 1) {
++i;
}
}
var update_history = function() {
- if (display_lines[0] === null) {
+ if (display_lines[0] === null || display_lines[0].pretty_pv.length == 0) {
$("#history").html("No history");
} else if (truncate_display_history) {
$("#history").html(print_pv(0, display_lines[0].pretty_pv, 1, 'W', 8, true));
hiddenboard.position(current_display_line.start_fen, false);
for (var i = 0; i <= current_display_move; ++i) {
+ var pos = hiddenboard.position();
var move = current_display_line.uci_pv[i];
+ var source = move.substr(0, 2);
+ var target = move.substr(2, 2);
var promo = move.substr(4, 1);
- move = move.substr(0, 2) + "-" + move.substr(2, 2);
+
+ // Check if we need to do en passant.
+ var piece = pos[source];
+ if (piece == "wP" || piece == "bP") {
+ if (source.substr(0, 1) != target.substr(0, 1) &&
+ pos[target] === undefined) {
+ var ep_square = target.substr(0, 1) + source.substr(1, 1);
+ delete pos[ep_square];
+ hiddenboard.position(pos, false);
+ }
+ }
+
+ move = source + "-" + target;
hiddenboard.move(move, false);
+ pos = hiddenboard.position();
// Do promotion if needed.
if (promo != "") {
- var pos = hiddenboard.position();
- var target = move.substr(3, 2);
pos[target] = pos[target].substr(0, 1) + promo.toUpperCase();
hiddenboard.position(pos, false);
}