5 #include <boost/scoped_ptr.hpp> 
    8 void usage (
const char *program_name)
 
   10   std::cerr << 
"Usage: " << program_name << 
" KISEN-FILE [out]" 
   15 void check_all(
const char*filename, 
const char *output)
 
   18   boost::scoped_ptr<std::ofstream> os;
 
   19   boost::scoped_ptr<osl::record::OKisenStream> 
out;
 
   21     os.reset(
new std::ofstream(output));
 
   25   for (
size_t i = 0; i < kisen.
size(); i++)
 
   28     if ((i % 16) == 15 || i + 1 == kisen.
size())
 
   29       std::cout << std::endl;
 
   33     osl::vector<osl::Move> 
moves;
 
   37       for (; j < moves.size(); j++)
 
   40           = state.kingSquare(
alt(state.turn()));
 
   41         if (state.hasEffectAt(state.turn(), opKingSquare))
 
   47         state.makeMove(moves[j]);
 
   52       std::cerr << e.what();
 
   60 int main(
int argc, 
char **argv)
 
   62   if (! (argc == 2 || argc == 3))
 
   65   check_all(argv[1], (argc == 3) ? argv[2] : 
"");