13 void process(
int move_number, 
const NumEffectState& src,
 
   14              const vector<Move>& history,
 
   15              const SearchInfo& info) 
 
   17     vector<Move> 
moves = info.moves;
 
   20     std::ostringstream ss;
 
   21     NumEffectState state = src;
 
   22     for (
int i=0; i<move_number; ++i)
 
   23         state.makeMove(history[i]);
 
   24     ss << 
"[(" << move_number+1 << 
") " 
   26        << 
"] " << info.value << 
' ';
 
   27     state.makeMove(history[move_number]);
 
   28     for (
size_t i=0; i<moves.size(); ++i) {
 
   30                                   state, i ? moves[i-1] : history[move_number]);
 
   31         state.makeMove(moves[i]);
 
   34     std::cout << utf8 << std::endl;
 
   41     while (getline(std::cin, line)) {
 
   43         if (line[0] == 
'#') 
break;
 
   45             CsaString csa(all.c_str());
 
   49             vector<std::string> comments;
 
   50             vector<SearchInfo> info;
 
   51             record.getMoves(moves, times, comments, info);
 
   52             if (info.empty() || info.back().moves.empty())
 
   54             while (last_output < (
int)info.size()) {
 
   56                     process(last_output, csa.getInitialState(),
 
   57                             moves, info[last_output]);
 
   61         catch (CsaIOError& e) {
 
   63                 std::cerr << 
"oops " << e.what() << 
' ' << last_output << 
'\n';