see.h
Go to the documentation of this file.
1 /* see.h
2  */
3 #ifndef OSL_SEE_H
4 #define OSL_SEE_H
5 
6 #include "osl/numEffectState.h"
7 
8 namespace osl
9 {
10  namespace eval
11  {
12  class PtypeEvalTable;
13  struct See
14  {
15  static int see(const NumEffectState& state, Move move,
16  const PieceMask& my_pin=PieceMask(), const PieceMask& op_pin=PieceMask(), const PtypeEvalTable *table=0);
17 
18  // public for test
19  template <Player P>
20  static int seeInternal(const NumEffectState& state, Move move,
21  const PieceMask& my_pin, const PieceMask& op_pin,
22  const PtypeEvalTable &table);
23  template <Player P>
24  static void findEffectPieces(const NumEffectState& state, Square effect_to,
25  PtypeOSquareVector& my_pieces, PtypeOSquareVector& op_pieces);
26  template <osl::Player P>
27  static void findEffectPiecesAfterMove(const NumEffectState& state, Move move,
28  PtypeOSquareVector& my_pieces, PtypeOSquareVector& op_pieces);
29  static void findAdditionalPieces(const NumEffectState& state, Player attack, Square target,
30  Square direct_attack_from,
31  PtypeOSquareVector& out);
38  template <Player P>
39  static int computeValue(const NumEffectState& state,
40  Move move,
41  PtypeOSquareVector& my_pieces,
42  PtypeOSquareVector& op_pieces,
43  const PieceMask& my_pin,
44  const PieceMask& op_pin,
45  const PtypeEvalTable &table);
46  struct StorePtypeO;
47  struct FindEffectMore;
48  };
49  };
50  using eval::See;
51 }
52 
53 #endif /* _SEE_H */
54 // ;;; Local Variables:
55 // ;;; mode:c++
56 // ;;; c-basic-offset:2
57 // ;;; End:
static int see(const NumEffectState &state, Move move, const PieceMask &my_pin=PieceMask(), const PieceMask &op_pin=PieceMask(), const PtypeEvalTable *table=0)
Definition: see.cc:261
static int computeValue(const NumEffectState &state, Move move, PtypeOSquareVector &my_pieces, PtypeOSquareVector &op_pieces, const PieceMask &my_pin, const PieceMask &op_pin, const PtypeEvalTable &table)
PtypeOSquareVector をもとに取り返し値を計算する
Definition: see.cc:112
static int seeInternal(const NumEffectState &state, Move move, const PieceMask &my_pin, const PieceMask &op_pin, const PtypeEvalTable &table)
Definition: see.cc:237
圧縮していない moveの表現 .
Definition: basic_type.h:1051
駒番号のビットセット.
Definition: pieceMask.h:20
利きを持つ局面
static void findEffectPiecesAfterMove(const NumEffectState &state, Move move, PtypeOSquareVector &my_pieces, PtypeOSquareVector &op_pieces)
Definition: see.cc:66
Player
Definition: basic_type.h:8
static void findAdditionalPieces(const NumEffectState &state, Player attack, Square target, Square direct_attack_from, PtypeOSquareVector &out)
Definition: see.cc:274
static void findEffectPieces(const NumEffectState &state, Square effect_to, PtypeOSquareVector &my_pieces, PtypeOSquareVector &op_pieces)
Definition: see.cc:30