32   computers[turn] = is_computer;
 
   34     players[turn]->allowSpeculativeSearch(is_computer);
 
   46   time_keeper.reset(black_time, white_time);
 
   54     std::cerr << 
"GameManager: game already started, load failure\n";
 
   58     std::cerr << 
"loading " << csa_filename << 
"\n";
 
   59   CsaFile csa_file(csa_filename);
 
   60   state.reset(
new GameState(csa_file.getInitialState()));
 
   61   logger->init(csa_file.getRecord().getPlayer(
BLACK).c_str(), 
 
   62                csa_file.getRecord().getPlayer(
WHITE).c_str(), state->state());
 
   64     player(
BLACK)->setInitialState(state->state());
 
   66     player(
WHITE)->setInitialState(state->state());
 
   69   csa_file.getRecord().getMoves(moves, times);
 
   70   assert(moves.size() == times.size());
 
   71   for (
size_t i=0; i<moves.size(); ++i)
 
   75                 << 
"T" << times[i] << 
"\n";
 
   76     if ((! state->state().isValidMove(moves[i]))
 
   77         || (! pushMove(MoveWithComment(moves[i]), times[i]).isNormal()))
 
   79       std::cerr << 
"invalid move " << i << 
" " << moves[i] << 
"\n";
 
   88   const Player turn = state->state().turn();
 
   90   const MoveWithComment best_move
 
   91     = player(turn)->selectBestMove(*state, time_keeper.timeLimit(turn), time_keeper.timeElapsed(turn), byoyomi);
 
   92   consumed = timer.
read();
 
   99   assert(state->state().isValidMove(move.move));
 
  100   time_keeper.pushMove(move.move.player(), seconds);
 
  101   logger->pushMove(move, seconds);
 
  102   logger->showTimeLeft(time_keeper);
 
  105     player(
BLACK)->pushMove(move.move);
 
  107     player(
WHITE)->pushMove(move.move);
 
  114   time_keeper.popMove();
 
  116   logger->showTimeLeft(time_keeper);
 
  119     player(
BLACK)->popMove();
 
  121     player(
WHITE)->popMove();