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;