Make the Chess960 storage/test a bit more efficient.
[remoteglot] / remoteglot.pl
index 66fb2ff..dec440b 100755 (executable)
@@ -299,6 +299,8 @@ sub handle_pgn {
                        if (exists($tags->{'Variant'}) &&
                            $tags->{'Variant'} =~ /960|fischer/i) {
                                $pos->{'chess960'} = 1;
+                       } else {
+                               $pos->{'chess960'} = 0;
                        }
                        my $moves = $pgn->moves;
                        my @uci_moves = ();
@@ -390,9 +392,9 @@ sub handle_position {
        # 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();
+       if ($engine->{'chess960'} != $pos->{'chess960'}) {
+               uciprint($engine, "setoption UCI_Chess960 " . ($pos->{'chess960'} ? 'true' : 'false'));
+               $engine->{'chess960'} = $pos->{'chess960'};
        }
        uciprint($engine, "position fen " . $pos->fen());
        uciprint($engine, "go infinite");
@@ -403,9 +405,9 @@ sub handle_position {
                        $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();
+               if ($engine2->{'chess960'} != $pos->{'chess960'}) {
+                       uciprint($engine2, "setoption UCI_Chess960 " . ($pos->{'chess960'} ? 'true' : 'false'));
+                       $engine2->{'chess960'} = $pos->{'chess960'};
                }
                uciprint($engine2, "position fen " . $pos->fen());
                uciprint($engine2, "go infinite");