display_lines = [];
// The headline.
- var headline = 'Analysis';
+ var headline;
+ if (data['position']['player_w'] && data['position']['player_b']) {
+ headline = data['position']['player_w'] + '–' +
+ data['position']['player_b'] + ', analysis';
+ } else {
+ headline = 'Analysis';
+ }
if (data['position']['last_move'] !== 'none') {
headline += ' after '
if (data['position']['toplay'] == 'W') {
}
if (data['tbhits'] && data['tbhits'] > 0) {
if (data['tbhits'] == 1) {
- stats += ', one Nalimov hit';
+ stats += ', one Syzygy hit';
} else {
- stats += ', ' + data['tbhits'] + ' Nalimov hits';
+ stats += ', ' + thousands(data['tbhits']) + ' Syzygy hits';
}
}
++current_display_move;
update_displayed_line();
}
-window['next_move'] = prev_move;
+window['next_move'] = next_move;
var update_displayed_line = function() {
if (current_display_line === null) {
var move = current_display_line.uci_pv[i];
move = move.substr(0, 2) + "-" + move.substr(2, 4);
hiddenboard.move(move, false);
+
+ // chessboard.js does not automatically move the rook on castling
+ // (issue #51; marked as won't fix), so update it ourselves.
+ if (move == "e1-g1" && hiddenboard.position().g1 == "wK") { // white O-O
+ hiddenboard.move("h1-f1", false);
+ } else if (move == "e1-c1" && hiddenboard.position().c1 == "wK") { // white O-O-O
+ hiddenboard.move("a1-d1", false);
+ } else if (move == "e8-g8" && hiddenboard.position().g8 == "bK") { // black O-O
+ hiddenboard.move("h8-f8", false);
+ } else if (move == "e8-c8" && hiddenboard.position().c8 == "bK") { // black O-O-O
+ hiddenboard.move("a8-d8", false);
+ }
}
board.position(hiddenboard.position());
}