X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=www%2Fjs%2Fremoteglot.js;h=b72f4c426119082512ba43af50bec53fe68a3019;hb=f71f5c94d093acda1b39d23cf7a71a21c6a3122b;hp=db816564829ca7a293be77c4ecc623cdccb89a2f;hpb=6d612018059e2e69f3ac39657d667e438c83782d;p=remoteglot diff --git a/www/js/remoteglot.js b/www/js/remoteglot.js index db81656..b72f4c4 100644 --- a/www/js/remoteglot.js +++ b/www/js/remoteglot.js @@ -7,7 +7,7 @@ * @type {Number} * @const * @private */ -var SCRIPT_VERSION = 2021010200; +var SCRIPT_VERSION = 2021021300; /** * The current backend URL. @@ -664,8 +664,9 @@ var add_pv = function(start_fen, pv, move_num, toplay, scores, start_display_mov if (scores !== null && scores.length >= 1 && scores[scores.length - 1].score !== undefined && scores[scores.length - 1].score !== null && - scores[scores.length - 1].score[0] === "tb") { - splicepos = Math.abs(scores[scores.length - 1].score[1]); + (scores[scores.length - 1].score[0] === 'T' || + scores[scores.length - 1].score[0] === 't')) { + splicepos = scores[scores.length - 1].score[1]; } return print_pv(display_lines.length - 1, splicepos, opt_limit, opt_showlast); } @@ -1212,6 +1213,24 @@ var update_board = function() { $("#score").text(format_long_score(data['score'])); } + // Low depth. + var lowdepth = ''; + if (data['lowdepth']) { + lowdepth = 'Quick look: '; + var lds = []; + Object.keys(data['lowdepth']).forEach(function(depth) { + lds.push([parseInt(depth), format_short_score(data['lowdepth'][depth])]); + }); + lds.sort(function(a, b) { return a[0] - b[0]; }); + for (var i = 0; i < lds.length; ++i) { + lowdepth += 'd' + lds[i][0] + ': ' + lds[i][1]; + if (i != lds.length - 1) { + lowdepth += ', '; + } + } + } + $("#lowdepth").html(lowdepth); + // The search stats. if (data['searchstats']) { $("#searchstats").html(data['searchstats']); @@ -1300,6 +1319,11 @@ var update_board = function() { hiddenboard = new Chess(base_fen); hiddenboard.move(line['pv'][0]); var this_response = hiddenboard.move(line['pv'][1]); + if (this_response === null) { + console.log("BUG: ", i); + console.log(data); + console.log(line['pv']); + } if (response.from !== this_response.from || response.to !== this_response.to) { // Different response depending on lines, abort. response = undefined; @@ -2116,24 +2140,25 @@ var format_short_score = function(score) { if (!score) { return "???"; } - if (score[0] === 'tb') { + if (score[0] === 'T' || score[0] === 't') { var ret = "TB\u00a0"; if (score[2]) { // Is a bound. ret = score[2] + "\u00a0TB\u00a0"; } - if (score[1] > 0) { + if (score[0] === 'T') { return ret + Math.ceil(score[1] / 2); } else { - return ret + "-" + Math.ceil(-score[1] / 2); + return ret + "-" + Math.ceil(score[1] / 2); } - } else if (score[0] === 'm') { + } else if (score[0] === 'M' || score[0] === 'm') { + var sign = (score[0] === 'm') ? '-' : ''; if (score[2]) { // Is a bound. - return score[2] + "\u00a0M " + score[1]; + return score[2] + "\u00a0M " + sign + score[1]; } else { - return "M " + score[1]; + return "M " + sign + score[1]; } } else if (score[0] === 'd') { - return "TB draw"; + return "TB =0"; } else if (score[0] === 'cp') { if (score[2]) { // Is a bound. return score[2] + "\u00a0" + fmt_cp(score[1]); @@ -2148,25 +2173,29 @@ var format_long_score = function(score) { if (!score) { return "???"; } - if (score[0] === 'tb') { - if (score[1] > 0) { - if (score[1] == 0) { - return "Won for white (tablebase)"; - } else { - return "White wins in " + Math.ceil(score[1] / 2); - } + if (score[0] === 'T') { + if (score[1] == 0) { + return "Won for white (tablebase)"; } else { - if (score[1] == -1) { - return "Won for black (tablebase)"; - } else { - return "Black wins in " + Math.ceil(-score[1] / 2); - } + return "White wins in " + Math.ceil(score[1] / 2); } - } else if (score[0] === 'm') { - if (score[1] > 0) { + } else if (score[0] === 't') { + if (score[1] == -1) { + return "Won for black (tablebase)"; + } else { + return "Black wins in " + Math.ceil(score[1] / 2); + } + } else if (score[0] === 'M') { + if (score[1] == 0) { + return "White wins by checkmate"; + } else { return "White mates in " + score[1]; + } + } else if (score[0] === 'm') { + if (score[1] == 0) { + return "Black wins by checkmate"; } else { - return "Black mates in " + (-score[1]); + return "Black mates in " + score[1]; } } else if (score[0] === 'd') { return "Theoretical draw"; @@ -2177,12 +2206,10 @@ var format_long_score = function(score) { } var compute_plot_score = function(score) { - if (score[0] === 'm' || score[0] === 'tb') { - if (score[1] > 0) { - return 500; - } else { - return -500; - } + if (score[0] === 'M' || score[0] === 'T') { + return 500; + } else if (score[0] === 'm' || score[0] === 't') { + return -500; } else if (score[0] === 'd') { return 0; } else if (score[0] === 'cp') { @@ -2209,22 +2236,18 @@ var compute_score_sort_key = function(score, depth, invert, depth_secondary_key) if (!score) { return -10000000; } - if (score[0] === 'tb') { - if (score[1] > 0) { - // White reaches TB win. - s = 89999 - score[1]; - } else { - // Black reaches TB win (note the double negative for score[1]). - s = -89999 - score[1]; - } + if (score[0] === 'T') { + // White reaches TB win. + s = 89999 - score[1]; + } else if (score[0] === 't') { + // Black reaches TB win. + s = -(89999 - score[1]); + } else if (score[0] === 'M') { + // White mates. + s = 99999 - score[1]; } else if (score[0] === 'm') { - if (score[1] > 0) { - // White mates. - s = 99999 - score[1]; - } else { - // Black mates (note the double negative for score[1]). - s = -99999 - score[1]; - } + // Black mates. + s = -(99999 - score[1]); } else if (score[0] === 'd') { s = 0; } else if (score[0] === 'cp') {