X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fuci.cpp;h=c6d090d2982c33594f3ba1f0c345d029cf59da29;hp=1b10c7b418697c969f00d8f8b9a4e0ed938db3db;hb=15153a1de71d2d36c1f95eecfcf036fb76565309;hpb=f200f3ccd2281deadecb6279fac59b16dea622d5 diff --git a/src/uci.cpp b/src/uci.cpp index 1b10c7b4..c6d090d2 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -23,6 +23,7 @@ //// #include +#include #include #include #include @@ -32,7 +33,6 @@ #include "move.h" #include "movegen.h" #include "position.h" -#include "san.h" #include "search.h" #include "ucioption.h" @@ -49,10 +49,10 @@ namespace { typedef istringstream UCIParser; // Local functions - void set_option(UCIParser& uip); - void set_position(Position& pos, UCIParser& uip); - bool go(Position& pos, UCIParser& uip); - void perft(Position& pos, UCIParser& uip); + void set_option(UCIParser& up); + void set_position(Position& pos, UCIParser& up); + bool go(Position& pos, UCIParser& up); + void perft(Position& pos, UCIParser& up); } @@ -140,7 +140,7 @@ namespace { void set_position(Position& pos, UCIParser& up) { - string token; + string fen, token; if (!(up >> token) || (token != "startpos" && token != "fen")) return; @@ -148,38 +148,19 @@ namespace { if (token == "startpos") { pos.from_fen(StartPositionFEN, false); - if (!(up >> token)) - return; + up >> token; // Consume "moves" token } else // fen { - string fen; while (up >> token && token != "moves") - { - fen += token; - fen += ' '; - } + fen += token + string(" "); + pos.from_fen(fen, Options["UCI_Chess960"].value()); } - if (token != "moves") - return; - - // Parse optional move list - Move move; - StateInfo st; + // Parse move list (if any) while (up >> token) - { - move = move_from_uci(pos, token); - pos.do_move(move, st); - if (pos.rule_50_counter() == 0) - pos.reset_game_ply(); - - pos.inc_startpos_ply_counter(); //FIXME: make from_fen to support this and rule50 - } - // Our StateInfo st is about going out of scope so copy - // its content inside pos before it disappears. - pos.detach(); + pos.do_setup_move(move_from_uci(pos, token)); } @@ -287,7 +268,8 @@ namespace { void perft(Position& pos, UCIParser& up) { - int depth, tm, n; + int depth, tm; + int64_t n; if (!(up >> depth)) return;