mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00:00
Tidy up comments in uci.cpp
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
0f7cbaca75
commit
348f824104
3 changed files with 28 additions and 42 deletions
16
src/main.cpp
16
src/main.cpp
|
@ -17,9 +17,6 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// To profile with callgrind uncomment following line
|
||||
//#define USE_CALLGRIND
|
||||
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
@ -31,10 +28,6 @@
|
|||
#include "search.h"
|
||||
#include "ucioption.h"
|
||||
|
||||
#ifdef USE_CALLGRIND
|
||||
#include <valgrind/callgrind.h>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
extern void uci_loop();
|
||||
|
@ -56,23 +49,18 @@ int main(int argc, char* argv[]) {
|
|||
Search::init();
|
||||
Threads.init();
|
||||
|
||||
#ifdef USE_CALLGRIND
|
||||
CALLGRIND_START_INSTRUMENTATION;
|
||||
#endif
|
||||
|
||||
if (argc < 2)
|
||||
{
|
||||
// Print copyright notice
|
||||
cout << engine_name() << " by " << engine_authors() << endl;
|
||||
|
||||
if (CpuHasPOPCNT)
|
||||
cout << "Good! CPU has hardware POPCNT." << endl;
|
||||
|
||||
// Enter the UCI loop waiting for input
|
||||
uci_loop();
|
||||
uci_loop(); // Enter the UCI loop and wait for user input
|
||||
}
|
||||
else if (string(argv[1]) == "bench" && argc < 8)
|
||||
benchmark(argc, argv);
|
||||
|
||||
else
|
||||
cout << "Usage: stockfish bench [hash size = 128] [threads = 1] "
|
||||
<< "[limit = 12] [fen positions file = default] "
|
||||
|
|
|
@ -680,7 +680,7 @@ namespace {
|
|||
{
|
||||
// If we are allowed to ponder do not stop the search now but
|
||||
// keep pondering until GUI sends "ponderhit" or "stop".
|
||||
if (Limits.ponder) // FIXME racing
|
||||
if (Limits.ponder)
|
||||
Signals.stopOnPonderhit = true;
|
||||
else
|
||||
Signals.stop = true;
|
||||
|
|
52
src/uci.cpp
52
src/uci.cpp
|
@ -17,7 +17,6 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
@ -35,8 +34,8 @@ using namespace std;
|
|||
|
||||
namespace {
|
||||
|
||||
// FEN string for the initial position
|
||||
const char* StarFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
|
||||
// FEN string of the initial position, normal chess
|
||||
const char* StartFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
|
||||
|
||||
// Keep track of position keys along the setup moves (from start position to the
|
||||
// position just before to start searching). This is needed by draw detection
|
||||
|
@ -51,35 +50,36 @@ namespace {
|
|||
|
||||
|
||||
/// Wait for a command from the user, parse this text string as an UCI command,
|
||||
/// and calls the appropriate functions. Also intercepts EOF from stdin to
|
||||
/// ensure that we exit gracefully if the GUI dies unexpectedly. In addition to
|
||||
/// the UCI commands, the function also supports a few debug commands.
|
||||
/// and call the appropriate functions. Also intercepts EOF from stdin to ensure
|
||||
/// that we exit gracefully if the GUI dies unexpectedly. In addition to the UCI
|
||||
/// commands, the function also supports a few debug commands.
|
||||
|
||||
void uci_loop() {
|
||||
|
||||
Position pos(StarFEN, false, 0); // The root position
|
||||
Position pos(StartFEN, false, 0); // The root position
|
||||
string cmd, token;
|
||||
bool quit = false;
|
||||
|
||||
while (!quit && getline(cin, cmd))
|
||||
while (token != "quit")
|
||||
{
|
||||
if (!getline(cin, cmd)) // Block here waiting for input
|
||||
cmd = "quit";
|
||||
|
||||
istringstream is(cmd);
|
||||
|
||||
is >> skipws >> token;
|
||||
|
||||
if (cmd == "quit" || cmd == "stop")
|
||||
if (token == "quit" || token == "stop")
|
||||
{
|
||||
quit = (token == "quit");
|
||||
Search::Signals.stop = true;
|
||||
Threads[0].wake_up(); // In case is waiting for stop or ponderhit
|
||||
}
|
||||
|
||||
else if (cmd == "ponderhit")
|
||||
else if (token == "ponderhit")
|
||||
{
|
||||
// The opponent has played the expected move. GUI sends "ponderhit" if
|
||||
// we were told to ponder on the same move the opponent has played. We
|
||||
// should continue searching but switching from pondering to normal search.
|
||||
Search::Limits.ponder = false; // FIXME racing
|
||||
Search::Limits.ponder = false;
|
||||
|
||||
if (Search::Signals.stopOnPonderhit)
|
||||
Search::Signals.stop = true;
|
||||
|
@ -91,7 +91,7 @@ void uci_loop() {
|
|||
go(pos, is);
|
||||
|
||||
else if (token == "ucinewgame")
|
||||
pos.from_fen(StarFEN, false);
|
||||
pos.from_fen(StartFEN, false);
|
||||
|
||||
else if (token == "isready")
|
||||
cout << "readyok" << endl;
|
||||
|
@ -149,7 +149,7 @@ namespace {
|
|||
|
||||
if (token == "startpos")
|
||||
{
|
||||
fen = StarFEN;
|
||||
fen = StartFEN;
|
||||
is >> token; // Consume "moves" token if any
|
||||
}
|
||||
else if (token == "fen")
|
||||
|
@ -172,9 +172,8 @@ namespace {
|
|||
}
|
||||
|
||||
|
||||
// set_option() is called when engine receives the "setoption" UCI
|
||||
// command. The function updates the corresponding UCI option ("name")
|
||||
// to the given value ("value").
|
||||
// set_option() is called when engine receives the "setoption" UCI command. The
|
||||
// function updates the UCI option ("name") to the given value ("value").
|
||||
|
||||
void set_option(istringstream& is) {
|
||||
|
||||
|
@ -197,10 +196,9 @@ namespace {
|
|||
}
|
||||
|
||||
|
||||
// go() is called when engine receives the "go" UCI command. The
|
||||
// function sets the thinking time and other parameters from the input
|
||||
// string, and then calls think(). Returns false if a quit command
|
||||
// is received while thinking, true otherwise.
|
||||
// go() is called when engine receives the "go" UCI command. The function sets
|
||||
// the thinking time and other parameters from the input string, and then starts
|
||||
// the main searching thread.
|
||||
|
||||
void go(Position& pos, istringstream& is) {
|
||||
|
||||
|
@ -235,6 +233,7 @@ namespace {
|
|||
while (is >> token)
|
||||
searchMoves.push_back(move_from_uci(pos, token));
|
||||
}
|
||||
|
||||
searchMoves.push_back(MOVE_NONE);
|
||||
limits.time = time[pos.side_to_move()];
|
||||
limits.increment = inc[pos.side_to_move()];
|
||||
|
@ -243,21 +242,20 @@ namespace {
|
|||
}
|
||||
|
||||
|
||||
// perft() is called when engine receives the "perft" command.
|
||||
// The function calls perft() passing the required search depth
|
||||
// then prints counted leaf nodes and elapsed time.
|
||||
// perft() is called when engine receives the "perft" command. The function
|
||||
// calls perft() with the required search depth then prints counted leaf nodes
|
||||
// and elapsed time.
|
||||
|
||||
void perft(Position& pos, istringstream& is) {
|
||||
|
||||
int depth, time;
|
||||
int64_t n;
|
||||
|
||||
if (!(is >> depth))
|
||||
return;
|
||||
|
||||
time = get_system_time();
|
||||
|
||||
n = Search::perft(pos, depth * ONE_PLY);
|
||||
int64_t n = Search::perft(pos, depth * ONE_PLY);
|
||||
|
||||
time = get_system_time() - time;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue