My Project
core/osl/eval/king8.h
Go to the documentation of this file.
1 /* king8.h
2  */
3 
4 #ifndef EVAL_ML_KING8_H
5 #define EVAL_ML_KING8_H
6 
7 #include "osl/eval/weights.h"
9 #include "osl/numEffectState.h"
10 #include "osl/bits/king8Info.h"
11 
12 namespace osl
13 {
14  namespace eval
15  {
16  namespace ml
17  {
19  {
20  public:
21  enum { DIM = 32 + 32 + 288 + 288 };
22  static void setUp(const Weights &weights);
23  static int eval(const NumEffectState &state);
24  private:
26  {
27  NOT_EMPTY = -1,
28  NO_EFFECT = 0,
32  };
37  static int index(const Direction dir,
38  EffectState state);
39  static int indexY(Piece king,
40  const Direction dir,
41  EffectState state);
42  static void effectState(const NumEffectState &state,
43  const Player defense,
44  const Direction dir,
45  EffectState &empty,
46  EffectState &/*defense*/);
47  };
48 
49 
51  {
52  public:
53  enum { DIM = 32 };
56  {
57  NOT_EMPTY = -1,
58  NO_EFFECT = 0,
62  };
63  template <class MakeEffectState>
64  static const CArray<int,2> evalCommon(const NumEffectState &state, const table_t&);
65  template <class MakeEffectState>
66  static const CArray<int,2> evalWithUpdateCommon(const NumEffectState &new_state, Move last_move,
67  const CArray<int,2>& last_value, const table_t&);
68 
69  template <class MakeEffectState>
70  static std::pair<CArray<int,2>, CArray<int,2> >
71  evalWithUpdateCommon(const NumEffectState &new_state, Move last_move,
72  const CArray<int,2>& last_value_opening, const CArray<int,2>& last_value_ending,
73  const table_t&, const table_t&);
74 
75  struct MakeEffectStateSimple;
77  protected:
78  static int index(const Direction dir, EffectState state)
79  {
80  return dir * 4 + state;
81  }
82  };
83  class King8EffectEmptySquareBoth;
84  template <bool Opening>
86  {
88  static table_t table;
89  public:
90  static void setUp(const Weights &weights);
91  static const CArray<int,2> eval(const NumEffectState &state);
92  static const CArray<int,2> evalWithUpdate(const NumEffectState &new_state, Move last_move,
93  const CArray<int,2>& last_value);
94  };
95 
97  {
98  public:
99  static std::pair<CArray<int,2>, CArray<int,2> >
100  evalWithUpdate(const NumEffectState &new_state, Move last_move,
101  const CArray<int,2>& last_value_opening,
102  const CArray<int,2>& last_value_ending);
103  };
105  : public King8EffectEmptySquare<true>
106  {
107  };
109  : public King8EffectEmptySquare<false>
110  {
111  };
112 
114  template <bool Opening>
116  : public King8EffectBase
117  {
120  public:
121  static void setUp(const Weights &weights);
122  static const CArray<int,2> eval(const NumEffectState &state);
123  static const CArray<int,2> evalWithUpdate(const NumEffectState &new_state, Move last_move,
124  const CArray<int,2>& last_value);
125  };
127  {
128  public:
129  static std::pair<CArray<int,2>, CArray<int,2> >
130  evalWithUpdate(const NumEffectState &new_state, Move last_move,
131  const CArray<int,2>& last_value_opening,
132  const CArray<int,2>& last_value_ending);
133  };
134 
136  : public King8EffectDefenseSquare<true>
137  {
138  };
140  : public King8EffectDefenseSquare<false>
141  {
142  };
143 
145  {
146  public:
147  enum { ONE_DIM = 32, DIM = 32 * 5 * 2};
148  private:
159  public:
161  {
162  NOT_EMPTY = -1,
167  };
168  static void setUp(const Weights &weights);
170  static int eval(const NumEffectState &state,
171  PieceMask black_mask, PieceMask white_mask);
172  static void effectState(const NumEffectState &state,
173  const Player defense,
174  const Direction dir,
175  EffectState &empty,
176  EffectState &/*defense*/);
177  static int index(const Direction dir, EffectState state);
178  };
179 
181  {
182  enum { DIM = 10 };
184  static const MultiIntPair eval(const NumEffectState &state,
185  const table_t& table);
186  template <osl::Player P>
187  static int index(Square king, int diff);
188  template <osl::Player P>
189  static bool isBlocked(const NumEffectState &state,
190  int diff);
191 #if 0
192  static std::pair<CArray<int,2>,CArray<int,2> >
193  evalWithUpdate(const NumEffectState &new_state, Move last_move,
194  const CArray<int,2>& last_value_o,
195  const CArray<int,2>& last_value_e,
196  const table_t& table_o, const table_t& table_e);
197 #endif
198  };
199  class KingXBlockedBoth;
200 
202  {
203  friend class KingXBlockedBoth;
204  friend class KingXBlockedYBase;
205  public:
206  static void setUp(const Weights &weights,int stage);
207  static MultiIntPair eval(const NumEffectState &state)
208  {
209  return KingXBlockedBase::eval(state, table);
210  }
211  private:
212  static table_t table;
213  };
214 
215  class KingXBlockedYBase// : public KingXBlockedBase
216  {
217  public:
218  enum { DIM = 90 };
220  static const MultiIntPair eval(const NumEffectState &state,
221  const table_t& table);
222  static void
223  evalWithUpdateBang(const NumEffectState &state, Move laste_move,
224  MultiIntPair &last_values_and_out);
225  template <osl::Player P>
226  static int index(Square king, int diff);
227  private:
228  template <int Sign>
229  static void adjust(int index, int index_y, MultiInt &out);
230  };
231 
233  {
234  friend class KingXBlockedBoth;
235  friend class KingXBlockedYBase;
236  public:
237  static void setUp(const Weights &weights,int stage);
238  static const MultiIntPair eval(const NumEffectState &state)
239  {
240  return KingXBlockedYBase::eval(state, table);
241  }
242  private:
243  static table_t table;
244  };
245 
247  {
248  public:
249  static void
250  evalWithUpdateBang(const NumEffectState &new_state, Move last_move,
251  MultiIntPair& last_values_and_out);
252  };
253 
255  {
256  friend class KingXBlockedYBase;
257  public:
258  enum { ONE_DIM = 5, DIM = ONE_DIM * EvalStages };
259  static void setUp(const Weights &weights);
260  static MultiIntPair eval(const NumEffectState &state);
261  private:
263  static int index(const Square king)
264  {
265  const int x = king.x();
266  return (x > 5 ? 9 - x : x - 1);;
267  }
268  template <Player P>
269  static int indexY(const Square king)
270  {
271  const int x = king.x();
272  const int y = (P == BLACK ? king.y() : 10 - king.y());
273  return (y - 1) * 5 + (x > 5 ? 9 - x : x - 1);
274  }
275  template <int Sign>
276  static void adjust(int index, int index_y, MultiInt &out);
277  };
278 
280  {
281  friend class KingXBlockedYBase;
282  friend class KingXBothBlocked;
283  public:
284  enum { ONE_DIM = 5 * 9, DIM = ONE_DIM * EvalStages };
285  static void setUp(const Weights &weights);
286  private:
288  };
289 
291  {
292  friend class KingXBlocked3Y;
293  public:
294  enum { ONE_DIM = 80, DIM = ONE_DIM * EvalStages };
295  static MultiInt eval(const NumEffectState &state);
296  static void setUp(const Weights &weights);
297  private:
298  template <int Sign>
299  static void adjust(int index_y, MultiInt &result)
300  {
301  if(Sign>0)
302  result += y_table[index_y];
303  else
304  result -= y_table[index_y];
305  }
306  template <Player P>
307  static int index(const Square king, bool is_l,
308  bool u_blocked, bool opp_u_blocked, bool opp_blocked)
309  {
310  int x = king.x();
311  if (x >= 6)
312  {
313  x = 10 - x;
314  if (P == BLACK)
315  {
316  is_l = !is_l;
317  }
318  }
319  else if (P == WHITE && x <= 4)
320  {
321  is_l = !is_l;
322  }
323  return x - 1 + 5 * ((is_l ? 1 : 0) + 2 * ((u_blocked ? 1 : 0) + 2 * ((opp_u_blocked ? 1 : 0) +2 * (opp_blocked ? 1 : 0))));
324  }
325  template <Player P>
326  static int indexY(const Square king, bool is_l,
327  bool u_blocked, bool opp_u_blocked,
328  bool opp_blocked)
329  {
330  int x = king.x();
331  const int y = (P == BLACK ? king.y() : 10 - king.y());
332  if (x >= 6)
333  {
334  x = 10 - x;
335  if (P == BLACK)
336  {
337  is_l = !is_l;
338  }
339  }
340  else if (P == WHITE && x <= 4)
341  {
342  is_l = !is_l;
343  }
344  return x - 1 + 5 * (y - 1 + 9 * ((is_l ? 1 : 0) + 2 * ((u_blocked ? 1 : 0) + 2 * ((opp_u_blocked ? 1 : 0) + 2 * (opp_blocked ? 1 : 0)))));
345  }
348  };
349 
351  {
352  public:
353  enum { ONE_DIM = 720, DIM = ONE_DIM * EvalStages };
354  static void setUp(const Weights &weights);
355  };
356 
358  {
359  public:
360  enum { DIM = 4 };
361  static void setUp(const Weights &weights,int stage);
362  static MultiInt eval(const NumEffectState &state);
363  static int index(Square king, Square target);
364  template <osl::Player Defense>
365  static MultiInt evalOne(const NumEffectState &state);
366  private:
368  };
369  }
370  }
371 }
372 
373 #endif // EVAL_ML_KING8_H
374 // ;;; Local Variables:
375 // ;;; mode:c++
376 // ;;; c-basic-offset:2
377 // ;;; End:
osl::eval::ml::King8EffectEmptySquareBoth::evalWithUpdate
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending)
Definition: king8.cc:336
osl::eval::ml::King8EffectBase::NO_EFFECT
@ NO_EFFECT
Definition: core/osl/eval/king8.h:58
osl::eval::ml::KingXBothBlockedY::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:613
osl::eval::ml::KingXBlocked3Y::ONE_DIM
@ ONE_DIM
Definition: core/osl/eval/king8.h:353
osl::eval::ml::King8EffectDefenseSquareEnding
Definition: core/osl/eval/king8.h:141
osl::Square
Definition: basic_type.h:532
osl::eval::ml::KingXBothBlocked
Definition: core/osl/eval/king8.h:255
osl::eval::ml::King8EffectDefenseSquare::eval
static const CArray< int, 2 > eval(const NumEffectState &state)
Definition: king8.cc:358
osl::eval::ml::KingXBlocked3::eval
static MultiInt eval(const NumEffectState &state)
Definition: king8.cc:965
osl::container::QuadInt
Definition: quadInt.h:43
osl::WHITE
@ WHITE
Definition: basic_type.h:10
osl::eval::ml::King8Effect::MORE_EFFECT
@ MORE_EFFECT
Definition: core/osl/eval/king8.h:30
osl::container::QuadIntPair
Definition: quadInt.h:155
osl::eval::ml::King8EffectBase::MORE_EFFECT
@ MORE_EFFECT
Definition: core/osl/eval/king8.h:60
osl::eval::ml::King8EffectDefenseSquare::evalWithUpdate
static const CArray< int, 2 > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value)
Definition: king8.cc:364
osl::eval::ml::King8Effect::DIM
@ DIM
Definition: core/osl/eval/king8.h:21
osl::eval::ml::KingXBlockedBase::index
static int index(Square king, int diff)
Definition: king8.cc:669
osl::eval::ml::KingXBlocked::eval
static MultiIntPair eval(const NumEffectState &state)
Definition: core/osl/eval/king8.h:207
osl::eval::ml::King8EffectEmptySquare
Definition: core/osl/eval/king8.h:86
osl::eval::ml::King8EffectAll::d_defense_piece_table
static CArray< int, ONE_DIM > d_defense_piece_table
Definition: core/osl/eval/king8.h:156
evalStagePair.h
osl::eval::ml::KingXBlocked3
Definition: core/osl/eval/king8.h:291
osl::eval::ml::KingXBlocked
Definition: core/osl/eval/king8.h:202
osl::eval::ml::KingXBlocked3Y
Definition: core/osl/eval/king8.h:351
eval
weights.h
osl::eval::ml::AnagumaEmpty
Definition: core/osl/eval/king8.h:358
osl::eval::ml::KingXBlockedY::setUp
static void setUp(const Weights &weights, int stage)
Definition: king8.cc:924
osl::Move
圧縮していない moveの表現 .
Definition: basic_type.h:1052
osl::eval::ml::King8Effect::NOT_EMPTY
@ NOT_EMPTY
Definition: core/osl/eval/king8.h:27
osl::eval::ml::KingXBothBlocked::adjust
static void adjust(int index, int index_y, MultiInt &out)
Definition: king8.cc:625
osl::eval::ml::King8EffectEmptySquare::table
static table_t table
Definition: core/osl/eval/king8.h:88
osl::eval::ml::King8EffectBase::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition: core/osl/eval/king8.h:61
osl::eval::ml::KingXBothBlocked::eval
static MultiIntPair eval(const NumEffectState &state)
Definition: king8.cc:634
osl::eval::ml::KingXBlockedBase::DIM
@ DIM
Definition: core/osl/eval/king8.h:182
osl::eval::ml::AnagumaEmpty::setUp
static void setUp(const Weights &weights, int stage)
Definition: king8.cc:1027
osl::eval::ml::King8EffectAll
Definition: core/osl/eval/king8.h:145
osl::eval::ml::King8EffectAll::ONE_DIM
@ ONE_DIM
Definition: core/osl/eval/king8.h:147
osl::eval::ml::KingXBlockedYBase::index
static int index(Square king, int diff)
Definition: king8.cc:879
osl::eval::ml::KingXBothBlockedY::table
static CArray< MultiInt, ONE_DIM > table
Definition: core/osl/eval/king8.h:287
osl::eval::ml::Weights
Definition: weights.h:18
osl::eval::ml::King8EffectBase::EffectState
EffectState
Definition: core/osl/eval/king8.h:56
osl::eval::ml::King8EffectDefenseSquare::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:348
osl::eval::ml::King8EffectAll::r_defense_piece_table
static CArray< int, ONE_DIM > r_defense_piece_table
Definition: core/osl/eval/king8.h:158
osl::eval::ml::King8EffectBase::table_t
CArray< int, 32 > table_t
Definition: core/osl/eval/king8.h:54
osl::eval::ml::King8Effect::index
static int index(const Direction dir, EffectState state)
Definition: king8.cc:82
osl::eval::ml::King8Effect::LESS_EFFECT
@ LESS_EFFECT
Definition: core/osl/eval/king8.h:29
osl::eval::ml::King8EffectAll::DIM
@ DIM
Definition: core/osl/eval/king8.h:147
osl::eval::ml::King8EffectDefenseSquareBoth::evalWithUpdate
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending)
Definition: king8.cc:374
osl::eval::ml::KingXBlockedY::table
static table_t table
Definition: core/osl/eval/king8.h:243
osl::eval::ml::King8EffectAll::MORE_EFFECT
@ MORE_EFFECT
Definition: core/osl/eval/king8.h:165
osl::eval::ml::KingXBlockedBoth::evalWithUpdateBang
static void evalWithUpdateBang(const NumEffectState &new_state, Move last_move, MultiIntPair &last_values_and_out)
Definition: king8.cc:916
osl::eval::ml::King8EffectAll::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:408
osl::eval::ml::King8Effect
Definition: core/osl/eval/king8.h:19
osl::eval::ml::KingXBlockedY
Definition: core/osl/eval/king8.h:233
osl::Piece
駒.
Definition: basic_type.h:788
osl::eval::ml::King8EffectAll::LESS_EFFECT
@ LESS_EFFECT
Definition: core/osl/eval/king8.h:164
osl::eval::ml::King8EffectAll::eval
static int eval(const NumEffectState &state, PieceMask black_mask, PieceMask white_mask)
Definition: king8.cc:487
osl::eval::ml::KingXBlockedBase::eval
static const MultiIntPair eval(const NumEffectState &state, const table_t &table)
Definition: king8.cc:724
osl::eval::ml::King8EffectAll::d_table
static CArray< int, ONE_DIM > d_table
Definition: core/osl/eval/king8.h:151
osl::eval::ml::King8EffectEmptySquareOpening
Definition: core/osl/eval/king8.h:106
osl::eval::ml::KingXBlocked3::ONE_DIM
@ ONE_DIM
Definition: core/osl/eval/king8.h:294
osl::eval::ml::KingXBothBlocked::index
static int index(const Square king)
Definition: core/osl/eval/king8.h:263
osl::eval::ml::King8EffectBase::MakeEffectStateDefense
Definition: king8.cc:180
osl::eval::ml::King8Effect::defense_y_table
static CArray< int, 288 > defense_y_table
Definition: core/osl/eval/king8.h:36
osl::eval::ml::King8EffectAll::l_table
static CArray< int, ONE_DIM > l_table
Definition: core/osl/eval/king8.h:152
osl::eval::ml::King8EffectEmptySquareBoth
Definition: core/osl/eval/king8.h:97
osl::eval::ml::King8EffectBase::index
static int index(const Direction dir, EffectState state)
Definition: core/osl/eval/king8.h:78
osl::eval::ml::King8EffectAll::u_defense_piece_table
static CArray< int, ONE_DIM > u_defense_piece_table
Definition: core/osl/eval/king8.h:155
osl::eval::ml::King8Effect::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition: core/osl/eval/king8.h:31
osl::eval::ml::King8Effect::NO_EFFECT
@ NO_EFFECT
Definition: core/osl/eval/king8.h:28
osl::eval::ml::KingXBlocked3::y_table
static CArray< MultiInt, 720 > y_table
Definition: core/osl/eval/king8.h:347
osl::eval::ml::KingXBothBlocked::indexY
static int indexY(const Square king)
Definition: core/osl/eval/king8.h:269
osl::eval::ml::King8EffectBase::MakeEffectStateSimple
Definition: king8.cc:153
osl::eval::ml::King8EffectAll::King8EffectAll
King8EffectAll()
Definition: core/osl/eval/king8.h:169
osl::eval::ml::King8EffectAll::r_table
static CArray< int, ONE_DIM > r_table
Definition: core/osl/eval/king8.h:153
osl::eval::ml::King8EffectEmptySquare::evalWithUpdate
static const CArray< int, 2 > evalWithUpdate(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value)
Definition: king8.cc:327
osl::eval::ml::KingXBothBlocked::ONE_DIM
@ ONE_DIM
Definition: core/osl/eval/king8.h:258
osl::eval::ml::King8EffectAll::base_defense_piece_table
static CArray< int, ONE_DIM > base_defense_piece_table
Definition: core/osl/eval/king8.h:154
osl::eval::ml::King8Effect::empty_y_table
static CArray< int, 288 > empty_y_table
Definition: core/osl/eval/king8.h:35
osl::eval::ml::KingXBlocked3::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:936
osl::eval::ml::King8Effect::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:17
osl::eval::ml::King8EffectEmptySquare::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:310
osl::eval::ml::King8EffectBase::DIM
@ DIM
Definition: core/osl/eval/king8.h:53
osl::eval::ml::King8EffectDefenseSquare::table
static CArray< int, 32 > table
Definition: core/osl/eval/king8.h:119
osl::eval::ml::King8EffectBase::LESS_EFFECT
@ LESS_EFFECT
Definition: core/osl/eval/king8.h:59
osl::eval::ml::King8EffectBase::evalWithUpdateCommon
static const CArray< int, 2 > evalWithUpdateCommon(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value, const table_t &)
osl::eval::ml::King8Effect::eval
static int eval(const NumEffectState &state)
Definition: king8.cc:40
osl::eval::ml::KingXBothBlocked::DIM
@ DIM
Definition: core/osl/eval/king8.h:258
osl::eval::ml::KingXBlockedYBase::adjust
static void adjust(int index, int index_y, MultiInt &out)
Definition: king8.cc:813
osl::eval::ml::King8Effect::effectState
static void effectState(const NumEffectState &state, const Player defense, const Direction dir, EffectState &empty, EffectState &)
Definition: king8.cc:101
osl::eval::ml::KingXBlocked3::table
static CArray< MultiInt, 80 > table
Definition: core/osl/eval/king8.h:346
osl::eval::ml::KingXBlocked3::indexY
static int indexY(const Square king, bool is_l, bool u_blocked, bool opp_u_blocked, bool opp_blocked)
Definition: core/osl/eval/king8.h:326
osl::Square::x
int x() const
将棋としてのX座標を返す.
Definition: basic_type.h:563
osl::eval::ml::King8Effect::indexY
static int indexY(Piece king, const Direction dir, EffectState state)
Definition: king8.cc:89
osl::NumEffectState
利きを持つ局面
Definition: numEffectState.h:34
osl::eval::ml::AnagumaEmpty::evalOne
static MultiInt evalOne(const NumEffectState &state)
Definition: king8.cc:1043
osl::eval::ml::KingXBlockedYBase::DIM
@ DIM
Definition: core/osl/eval/king8.h:218
osl::Direction
Direction
Definition: basic_type.h:310
osl::eval::ml::KingXBothBlockedY::DIM
@ DIM
Definition: core/osl/eval/king8.h:284
osl::eval::ml::King8EffectBase
Definition: core/osl/eval/king8.h:51
osl::eval::ml::KingXBlockedBase
Definition: core/osl/eval/king8.h:181
king8Info.h
osl::eval::ml::AnagumaEmpty::table
static CArray< MultiInt, 4 > table
Definition: core/osl/eval/king8.h:367
osl::Square::y
int y() const
将棋としてのY座標を返す.
Definition: basic_type.h:567
osl::eval::ml::AnagumaEmpty::eval
static MultiInt eval(const NumEffectState &state)
Definition: king8.cc:1073
osl::eval::ml::King8EffectAll::EffectState
EffectState
Definition: core/osl/eval/king8.h:161
osl::eval::ml::KingXBothBlockedY::ONE_DIM
@ ONE_DIM
Definition: core/osl/eval/king8.h:284
osl::eval::ml::King8EffectAll::NO_EFFECT
@ NO_EFFECT
Definition: core/osl/eval/king8.h:163
osl::eval::ml::King8EffectAll::MORE_EFFECT_KING_ONLY
@ MORE_EFFECT_KING_ONLY
Definition: core/osl/eval/king8.h:166
osl::eval::ml::King8EffectDefenseSquareOpening
Definition: core/osl/eval/king8.h:137
osl::BLACK
@ BLACK
Definition: basic_type.h:9
osl::eval::ml::KingXBlocked::table
static table_t table
Definition: core/osl/eval/king8.h:212
osl::eval::ml::KingXBlocked3::index
static int index(const Square king, bool is_l, bool u_blocked, bool opp_u_blocked, bool opp_blocked)
Definition: core/osl/eval/king8.h:307
osl::eval::ml::King8Effect::defense_table
static CArray< int, 32 > defense_table
Definition: core/osl/eval/king8.h:34
osl::eval::ml::King8EffectAll::l_defense_piece_table
static CArray< int, ONE_DIM > l_defense_piece_table
Definition: core/osl/eval/king8.h:157
osl::eval::ml::King8EffectAll::NOT_EMPTY
@ NOT_EMPTY
Definition: core/osl/eval/king8.h:162
osl::eval::ml::King8EffectDefenseSquareBoth
Definition: core/osl/eval/king8.h:127
osl::eval::ml::King8EffectAll::effectState
static void effectState(const NumEffectState &state, const Player defense, const Direction dir, EffectState &empty, EffectState &)
Definition: king8.cc:436
osl::eval::ml::King8EffectBase::evalWithUpdateCommon
static std::pair< CArray< int, 2 >, CArray< int, 2 > > evalWithUpdateCommon(const NumEffectState &new_state, Move last_move, const CArray< int, 2 > &last_value_opening, const CArray< int, 2 > &last_value_ending, const table_t &, const table_t &)
osl::eval::ml::KingXBothBlockedY
Definition: core/osl/eval/king8.h:280
osl::eval::ml::KingXBlockedYBase::evalWithUpdateBang
static void evalWithUpdateBang(const NumEffectState &state, Move laste_move, MultiIntPair &last_values_and_out)
Definition: king8.cc:824
osl::eval::ml::King8Effect::empty_table
static CArray< int, 32 > empty_table
Definition: core/osl/eval/king8.h:33
osl::eval::ml::AnagumaEmpty::DIM
@ DIM
Definition: core/osl/eval/king8.h:360
osl::eval::ml::AnagumaEmpty::index
static int index(Square king, Square target)
Definition: king8.cc:1036
osl::Player
Player
Definition: basic_type.h:8
numEffectState.h
osl::eval::ml::King8EffectAll::u_table
static CArray< int, ONE_DIM > u_table
Definition: core/osl/eval/king8.h:150
osl::eval::ml::KingXBlockedYBase
Definition: core/osl/eval/king8.h:216
osl::eval::ml::KingXBlocked3::adjust
static void adjust(int index_y, MultiInt &result)
Definition: core/osl/eval/king8.h:299
osl::eval::ml::EffectState
EffectState
Definition: kingTable.h:499
osl::CArray< int, 32 >
osl::eval::ml::KingXBlockedYBase::table_t
CArray< MultiInt, 90 > table_t
Definition: core/osl/eval/king8.h:219
osl::eval::ml::King8EffectEmptySquareEnding
Definition: core/osl/eval/king8.h:110
osl::eval::ml::KingXBlocked3::DIM
@ DIM
Definition: core/osl/eval/king8.h:294
osl::eval::ml::KingXBlockedYBase::eval
static const MultiIntPair eval(const NumEffectState &state, const table_t &table)
Definition: king8.cc:743
osl::eval::ml::King8EffectBase::NOT_EMPTY
@ NOT_EMPTY
Definition: core/osl/eval/king8.h:57
osl::eval::ml::KingXBlockedBase::table_t
CArray< MultiInt, 10 > table_t
Definition: core/osl/eval/king8.h:183
osl::eval::ml::KingXBlockedY::eval
static const MultiIntPair eval(const NumEffectState &state)
Definition: core/osl/eval/king8.h:238
osl::eval::ml::King8EffectDefenseSquare
Definition: core/osl/eval/king8.h:117
osl::eval::ml::King8EffectEmptySquare::eval
static const CArray< int, 2 > eval(const NumEffectState &state)
Definition: king8.cc:321
osl::eval::ml::KingXBothBlocked::table
static CArray< MultiInt, ONE_DIM > table
Definition: core/osl/eval/king8.h:262
osl::PieceMask
駒番号のビットセット.
Definition: pieceMask.h:21
osl::eval::ml::KingXBlocked3Y::DIM
@ DIM
Definition: core/osl/eval/king8.h:353
osl::eval::ml::KingXBlockedBoth
Definition: core/osl/eval/king8.h:247
osl::eval::ml::King8EffectBase::evalCommon
static const CArray< int, 2 > evalCommon(const NumEffectState &state, const table_t &)
osl::eval::ml::KingXBlocked3Y::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:945
osl::eval::ml::KingXBlocked::setUp
static void setUp(const Weights &weights, int stage)
Definition: king8.cc:907
osl
Definition: additionalEffect.h:6
osl::eval::ml::King8EffectAll::index
static int index(const Direction dir, EffectState state)
Definition: king8.cc:481
osl::eval::ml::King8Effect::EffectState
EffectState
Definition: core/osl/eval/king8.h:26
osl::eval::ml::King8EffectAll::base_table
static CArray< int, ONE_DIM > base_table
Definition: core/osl/eval/king8.h:149
osl::eval::ml::KingXBothBlocked::setUp
static void setUp(const Weights &weights)
Definition: king8.cc:603
osl::EvalStages
const int EvalStages
Definition: midgame.h:12
osl::eval::ml::KingXBlockedBase::isBlocked
static bool isBlocked(const NumEffectState &state, int diff)
Definition: king8.cc:692