} else {
$pos = Position->start_pos($white, $black);
}
+ if (exists($tags->{'Variant'}) &&
+ $tags->{'Variant'} =~ /960|fischer/i) {
+ $pos->{'chess960'} = 1;
+ }
my $moves = $pgn->moves;
my @uci_moves = ();
my @repretty_moves = ();
# It's wrong to just give the FEN (the move history is useful,
# and per the UCI spec, we should really have sent "ucinewgame"),
# but it's easier, and it works around a Stockfish repetition issue.
+ if ($engine->{'chess960'} != $pos->is_chess960()) {
+ uciprint($engine, "setoption UCI_Chess960 " . ($pos->is_chess960() ? 'true' : 'false'));
+ $engine->{'chess960'} = $pos->is_chess960();
+ }
uciprint($engine, "position fen " . $pos->fen());
uciprint($engine, "go infinite");
$pos_calculating = $pos;
$engine2->{'stopping'} = 1;
uciprint($engine2, "stop");
}
+ if ($engine2->{'chess960'} != $pos->is_chess960()) {
+ uciprint($engine2, "setoption UCI_Chess960 " . ($pos->is_chess960() ? 'true' : 'false'));
+ $engine2->{'chess960'} = $pos->is_chess960();
+ }
uciprint($engine2, "position fen " . $pos->fen());
uciprint($engine2, "go infinite");
$pos_calculating_second_engine = $pos;