}
);
if (defined($remoteglotconf::target)) {
- if ($remoteglotconf::target =~ /^http:/) {
+ if ($remoteglotconf::target =~ /^https?:/) {
fetch_pgn($remoteglotconf::target);
} else {
$t->cmd("observe $remoteglotconf::target");
sub prettyprint_pv {
my ($pos, @pvs) = @_;
- my $cachekey = join('', @pvs);
+ my $cachekey = $pos->{'fen'} . join('', @pvs);
if (exists($pos->{'prettyprint_cache'}{$cachekey})) {
return @{$pos->{'prettyprint_cache'}{$cachekey}};
} else {
}
}
+my %tbprobe_cache = ();
+
sub complete_using_tbprobe {
my ($pos, $info, $mpv) = @_;
# Run through the PV until we are at a 6-man position.
# TODO: We could in theory only have 5-man data.
my @pv = @{$info->{'pv' . $mpv}};
- my $key = join('', @pv);
+ my $key = $pos->fen() . " " . join('', @pv);
my @moves = ();
- if (exists($pos->{'tbprobe_cache'}{$key})) {
- @moves = @{$pos->{'tbprobe_cache'}{$key}};
+ if (exists($tbprobe_cache{$key})) {
+ @moves = @{$tbprobe_cache{$key}};
} else {
if ($mpv ne '') {
# Force doing at least one move of the PV.
push @moves, $uci_move;
}
- $pos->{'tbprobe_cache'}{$key} = \@moves;
+ $tbprobe_cache{$key} = \@moves;
}
$info->{'pv' . $mpv} = \@moves;
if ($score == 0 && $info->{'tablebase'}) {
return ['d', undef];
} else {
- return ['cp', $score];
+ return ['cp', int($score)];
}
}
}