3 #ifndef EVAL_PROGRESSEVAL_H
4 #define EVAL_PROGRESSEVAL_H
22 #include <boost/static_assert.hpp>
49 template <
class OpeningEval>
79 template<Player P, Ptype PTYPE, Direction Dir, Direction LongDir>
81 template <Player P, Ptype PTYPE>
89 return opening_eval_t::initialized();
91 static bool setUp(
const char *filename)
93 if (! opening_eval_t::setUp())
100 if (! opening_eval_t::setUp())
110 Progress16 black_defense,
111 Progress16 white_defense)
114 (white.value() * 2 - white_defense.value()
115 - black.value() * 2 + black_defense.value())
122 Progress16 black_defense,
123 Progress16 white_defense,
130 assert(progress16.isValid());
131 assert(black.isValid());
132 assert(white.isValid());
136 int result = value_opening*16 +
137 progress16.value() * (value_endgame-value_opening +
147 assert(result % 2 == 0);
185 int expect(
const NumEffectState& state,
Move move)
const;
190 void update(
const NumEffectState& new_state,
Move last_move);
193 template <Player Attack, Direction Dir>
196 template <osl::Player P>
209 return composeValue(opening_eval_t::infty(), 0, Progress16(0),
210 Progress16(0), Progress16(0), Progress16(0),
211 Progress16(0), 0, 0, 0);