21     book(copy.
book), state_index(copy.state_index), turn(copy.turn),
 
   23     state_stack(copy.state_stack)
 
   36   state_stack.push(state_index);
 
   37   assert(move.
player() == turn);
 
   42     for (
size_t i=0; i<moves.size(); i++)
 
   44       if(moves[i].getMove() == move)
 
   46         state_index = moves[i].getStateIndex();
 
   49                     << state_stack.top() << 
"->" << state_index << 
"\n";
 
   54       std::cerr << 
"book: end" << 
"\n";
 
   62   state_index = state_stack.top();
 
   70   return state_index < 0; 
 
   76   assert(randomness >= 0);
 
   78   int maxWin = -1, maxIndex = -1;
 
   81   for (
size_t index=0; index<moves.size(); ++index)
 
   83     Move move=moves[index].getMove();
 
   84     const int curIndex = moves[index].getStateIndex();
 
   85     const int winNum = (
book.getWinCount(curIndex)
 
   87     const int loseNum = (
book.getLoseCount(curIndex)
 
   90       std::cerr << move << 
"," << winNum << 
"/" << loseNum << std::endl;
 
   93       if (winNum >= maxWin + randomness)
 
  101       if (loseNum >= maxWin + randomness)
 
  109     std::cerr << std::endl;
 
  112     return moves[maxIndex].getMove();