}
if (exists($info->{'splicepos' . $mpv})) {
my $sp = $info->{'splicepos' . $mpv};
- if ($mate < 0) {
- return ['tb', -$sp];
+ if ($mate > 0) {
+ return ['T', $sp];
} else {
- return ['tb', $sp];
+ return ['t', $sp];
}
} else {
- return ['m', $mate];
+ if ($mate > 0) {
+ return ['M', $mate];
+ } elsif ($mate < 0) {
+ return ['m', -$mate];
+ } elsif ($pos->{'toplay'} eq 'B') {
+ return ['M', 0];
+ } else {
+ return ['m', 0];
+ }
}
} else {
if (exists($info->{'score_cp' . $mpv})) {
if (exists($info->{'splicepos' . $mpv})) {
my $sp = $info->{'splicepos' . $mpv};
if ($mate > 0) {
- return sprintf "White wins in %u/%u", int(($sp + 1) * 0.5), $sp;
+ return sprintf "White wins in %u", int(($sp + 1) * 0.5);
} else {
- return sprintf "Black wins in %u/%u", int(($sp + 1) * 0.5), $sp;
+ return sprintf "Black wins in %u", int(($sp + 1) * 0.5);
}
} else {
if ($mate > 0) {
* @type {Number}
* @const
* @private */
-var SCRIPT_VERSION = 2021010200;
+var SCRIPT_VERSION = 2021010201;
/**
* The current backend URL.
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;
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);
}
- } 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]);
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]);
}
- } 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";
}
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') {
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') {