9 #include <boost/ptr_container/ptr_vector.hpp> 
   16     class Group : 
public boost::ptr_vector<Feature> 
 
   21       Group(
const std::string& name);
 
   24       virtual void show(std::ostream&, 
int name_width, 
const range_t& range, 
 
   25                         const vector<double>& weights) 
const;
 
   30                       const vector<double>& weights) 
const;
 
   31       void showAll(std::ostream& os, 
int name_width, 
const range_t& range, 
 
   32                    const vector<double>& weights) 
const;
 
   34                     const vector<double>& weights, 
int n) 
const;
 
   36                       const vector<double>& weights) 
const;
 
   37       bool load(
const std::string& directory, 
const range_t& range, 
 
   38                 vector<double>& weights) 
const;
 
   50       void show(std::ostream& os, 
int name_width, 
const range_t& range, 
 
   51                 const vector<double>& weights)
 const 
   53         showAll(os, name_width, range, weights);
 
   59         if (! env.
history.hasLastMove() || env.
history.lastMove().to() != to)
 
   61         if (! env.
history.hasLastMove(2) || env.
history.lastMove(2).to() != to)
 
   72         for (
int i=0; i<4; ++i)
 
   73           for (
int p=0; p<8; ++p)       
 
   74             push_back(
new Check(i));
 
   76       void show(std::ostream& os, 
int name_width, 
const range_t& range, 
 
   77                 const vector<double>& weights)
 const 
   79         showAll(os, name_width, range, weights);
 
   83         using namespace osl::move_classifier;
 
   91         const int progress8 = env.
progress.value()/2;
 
   92         return index*8 + progress8;
 
  102         for (
int p=0; p<8; ++p) 
 
  104         for (
int p=0; p<8; ++p) 
 
  108                 const vector<double>& weights)
 const 
  110         showAll(os, name_width, range, weights);
 
  116         const int progress8 = env.
progress.value()/2;
 
  125         for (
int s=0; s<=3; ++s) {
 
  126           for (
int o=0; o<=3; ++o) {
 
  127             push_back(
new Block(s, o));
 
  132                 const vector<double>& weights)
 const 
  134         showAll(os, name_width, range, weights);
 
  149         for (
int i=0; i<16; ++i)
 
  150           push_back(
new Open(i));
 
  153                 const vector<double>& weights)
 const 
  155         showTopN(os, name_width, range, weights, 3);
 
  169                 const vector<double>& weights)
 const 
  171         showTopN(os, name_width, range, weights, 3);
 
  180                 const vector<double>& weights)
 const 
  182         showAll(os, name_width, range, weights);
 
  191                 const vector<double>& weights)
 const 
  193         showTopN(os, name_width, range, weights, 3);
 
  200         const int progress8 = env.
progress.value()/2;
 
  201         return index*8 + progress8;
 
  213                 const vector<double>& weights)
 const 
  215         showAll(os, name_width, range, weights);
 
  222         const int index = state.hasEffectAt(
alt(move.
player()), front);
 
  231         for (
int p=0; p<8; ++p) 
 
  235                 const vector<double>& weights)
 const 
  237         showAll(os, name_width, range, weights);
 
  241         if (! (*
this)[0].match(state, move, env))
 
  243         const int progress8 = env.
progress.value()/2;