10 #include <boost/algorithm/string/predicate.hpp> 
   14 namespace csa=osl::record::csa;
 
   17   for (
size_t i=0; i<moves.size(); ++i) {
 
   18     const Move selected = moves[i];
 
   22     cout << 
"selected " << 
csa::show(selected) << 
" others";
 
   23     for (
size_t j=0; j<all.size(); ++j) {
 
   24       if (all[j] != selected)
 
   29     state.makeMove(selected);
 
   32 int main(
int argc, 
char **argv) {
 
   33   for (
int i=1; i<argc; ++i) {
 
   34     const char *filename = argv[i];
 
   35     if (boost::algorithm::iends_with(filename, 
".csa")) {
 
   36       const CsaFile csa(filename);
 
   37       run(csa.getRecord().getMoves());
 
   39     else if (boost::algorithm::iends_with(filename, 
".ki2")) {
 
   40       const Ki2File ki2(filename);
 
   41       run(ki2.getRecord().getMoves());
 
   43     else if (boost::algorithm::iends_with(filename, 
".kif")
 
   44              && KakinokiFile::isKakinokiFile(filename)) {
 
   45       const KakinokiFile kif(filename);
 
   46       run(kif.getRecord().getMoves());
 
   48     else if (boost::algorithm::iends_with(filename, 
".kif")) {
 
   49       KisenFile kisen(filename);
 
   50       for (
size_t j=0; j<kisen.size(); ++j)
 
   51         run(kisen.getMoves(j));
 
   54       cerr << 
"Unknown file type: " << filename << 
"\n";