18 using namespace osl::eval;
 
   23   cerr << 
"Usage: " << prog << 
" csa-filename" 
   28 void show(
const char *filename);
 
   32 int main(
int argc, 
char **argv)
 
   34   const char *program_name = argv[0];
 
   35   bool error_flag = 
false;
 
   40   while ((c = getopt(argc, argv, 
"e:vh")) != EOF)
 
   48     default:    error_flag = 
true;
 
   60   for (
int i=0; i<argc; ++i)
 
   69     const Piece piece = state.pieceOf(i);
 
   72     const NumEffectState removed(state.emulateCapture(piece, piece.
owner()));
 
   80   CArray<int,40> 
count = {{ 0 }};
 
   83     const Piece piece = state.pieceOf(i);
 
   86     const NumEffectState removed(state.emulateCapture(piece, piece.
owner()));
 
   89       const Piece piece2 = state.pieceOf(j);
 
   92       const NumEffectState removed2(removed.emulateCapture(piece2, piece2.
owner()));
 
   94       values[j] += eval_removed.
value() - eval_removed2.
value();
 
  100       values[i] /= count[i];
 
  103 void show(
const NumEffectState& state)
 
  107   static const double scale = 200.0 
 
  112     make1(state, eval, values);
 
  114     make2(state, eval, values);
 
  115   printer.
print(state);
 
  116   for (
int z=0; z<2; ++z) {
 
  121         const Piece piece = state.pieceOf(i);
 
  128         std::cout << 
"  (" << piece.
square().
x() << 
"," << piece.
square().
y()
 
  129                   << 
") " << (int)(values[piece.
number()]*scale);
 
  135   std::cout << 
"total " << (int)(eval.
value()*scale)
 
  136             << 
" " << eval.
value() 
 
  137             << 
" (progress: " << eval.
progress16().value()
 
  146 void show(
const char *filename)
 
  148   CsaFile file(filename);
 
  149   const vector<osl::Move> 
moves = file.getRecord().getMoves();
 
  150   NumEffectState state(file.getInitialState());
 
  151   for (
unsigned int i=0; i<moves.size(); i++)
 
  154     const Move m = moves[i];