My Project
patternGroup.h
Go to the documentation of this file.
1 /* patternGroup.h
2  */
3 #ifndef _PATTERNGROUP_H
4 #define _PATTERNGROUP_H
5 
6 #include "osl/rating/group.h"
8 
9 namespace osl
10 {
11  namespace rating
12  {
13  struct PatternGroup : public Group
14  {
15  static std::string name(Direction direction, Direction direction2);
19  void show(std::ostream& os, int name_width, const range_t& range,
20  const std::vector<double>& weights) const
21  {
22  showTopN(os, name_width, range, weights, 3);
23  }
24  int findMatch(const NumEffectState& state, Move m, const RatingEnv&) const;
25  bool effectiveInCheck() const { return true; }
26  };
27 
28 
29  class PatternLongGroup : public Group
30  {
31  public:
34  private:
35  static std::string name(int direction_id);
37  public:
38  explicit PatternLongGroup(int d);
39 
41  {
43  }
44  void show(std::ostream& os, int name_width, const range_t& range,
45  const std::vector<double>& weights) const
46  {
47  showTopN(os, name_width, range, weights, 3);
48  }
49  int findMatch(const NumEffectState& state, Move m, const RatingEnv& env) const;
50  bool effectiveInCheck() const { return true; }
51  };
52 
53 
54  class PatternLongGroup2 : public Group
55  {
56  static std::string name(int direction_id);
58  public:
59  PatternLongGroup2(int d);
60 
62  {
63  return (unpromote(ptype) == BISHOP)
66  }
67  void show(std::ostream& os, int name_width, const range_t& range,
68  const std::vector<double>& weights) const
69  {
70  showTopN(os, name_width, range, weights, 3);
71  }
72  int findMatch(const NumEffectState& state, Move m, const RatingEnv& env) const;
73  bool effectiveInCheck() const { return true; }
74  };
75 
76  class PatternBlockGroup : public Group
77  {
79  public:
81  void show(std::ostream& os, int name_width, const range_t& range,
82  const std::vector<double>& weights) const
83  {
84  showTopN(os, name_width, range, weights, 3);
85  }
86  int findMatch(const NumEffectState& state, Move m, const RatingEnv& env) const;
87  };
88  }
89 }
90 
91 #endif /* _PATTERNGROUP_H */
92 // ;;; Local Variables:
93 // ;;; mode:c++
94 // ;;; c-basic-offset:2
95 // ;;; End:
osl::rating::PatternLongGroup
Definition: patternGroup.h:30
osl::rating::PatternGroup::findMatch
int findMatch(const NumEffectState &state, Move m, const RatingEnv &) const
Definition: patternGroup.cc:33
osl::rating::PatternBlockGroup::show
void show(std::ostream &os, int name_width, const range_t &range, const std::vector< double > &weights) const
Definition: patternGroup.h:81
osl::rating::PatternGroup::effectiveInCheck
bool effectiveInCheck() const
Definition: patternGroup.h:25
osl::rating::PatternGroup::name
static std::string name(Direction direction, Direction direction2)
Definition: patternGroup.cc:56
osl::rating::PatternGroup::PatternGroup
PatternGroup(Direction d, Direction d2=Pattern::INVALID)
Definition: patternGroup.cc:6
group.h
osl::rating::PatternLongGroup2::makeDirection
Direction makeDirection(Ptype ptype) const
Definition: patternGroup.h:61
osl::Move
圧縮していない moveの表現 .
Definition: basic_type.h:1052
osl::rating::PatternLongGroup::PatternLongGroup
PatternLongGroup(int d)
Definition: patternGroup.cc:75
osl::rating::PatternLongGroup2
Definition: patternGroup.h:55
osl::rating::Group
mutually exclusive set of features
Definition: group.h:17
osl::rating::PatternLongGroup2::show
void show(std::ostream &os, int name_width, const range_t &range, const std::vector< double > &weights) const
Definition: patternGroup.h:67
osl::rating::PatternLongGroup::rook_direction4
static const CArray< Direction, 4 > rook_direction4
Definition: patternGroup.h:32
osl::Ptype
Ptype
駒の種類を4ビットでコード化する
Definition: basic_type.h:84
osl::rating::range_t
std::pair< int, int > range_t
Definition: range.h:10
osl::rating::PatternGroup::target_table
CArray2d< unsigned char, 2, Square::SIZE > target_table
Definition: patternGroup.h:17
pattern.h
osl::rating::PatternLongGroup2::direction_id
int direction_id
Definition: patternGroup.h:57
osl::rating::PatternLongGroup2::name
static std::string name(int direction_id)
Definition: patternGroup.cc:141
osl::rating::PatternBlockGroup::attacker
Ptype attacker
Definition: patternGroup.h:78
osl::rating::RatingEnv
Definition: ratingEnv.h:16
osl::rating::PatternBlockGroup::findMatch
int findMatch(const NumEffectState &state, Move m, const RatingEnv &env) const
Definition: patternGroup.cc:221
osl::rating::PatternLongGroup::name
static std::string name(int direction_id)
Definition: patternGroup.cc:68
osl::rating::PatternLongGroup2::PatternLongGroup2
PatternLongGroup2(int d)
Definition: patternGroup.cc:148
osl::BISHOP
@ BISHOP
Definition: basic_type.h:99
osl::rating::PatternLongGroup::makeDirection
Direction makeDirection(Ptype ptype) const
Definition: patternGroup.h:40
osl::rating::PatternLongGroup::effectiveInCheck
bool effectiveInCheck() const
Definition: patternGroup.h:50
osl::rating::PatternGroup::show
void show(std::ostream &os, int name_width, const range_t &range, const std::vector< double > &weights) const
Definition: patternGroup.h:19
osl::rating::PatternGroup
Definition: patternGroup.h:14
osl::NumEffectState
利きを持つ局面
Definition: numEffectState.h:34
osl::Direction
Direction
Definition: basic_type.h:310
osl::rating::PatternLongGroup2::findMatch
int findMatch(const NumEffectState &state, Move m, const RatingEnv &env) const
Definition: patternGroup.cc:163
osl::rating::PatternLongGroup::findMatch
int findMatch(const NumEffectState &state, Move m, const RatingEnv &env) const
Definition: patternGroup.cc:98
osl::rating::PatternBlockGroup
Definition: patternGroup.h:77
osl::rating::PatternLongGroup2::effectiveInCheck
bool effectiveInCheck() const
Definition: patternGroup.h:73
osl::rating::Pattern::INVALID
static const Direction INVALID
Definition: pattern.h:16
osl::rating::PatternGroup::direction2
Direction direction2
Definition: patternGroup.h:16
osl::rating::PatternLongGroup::show
void show(std::ostream &os, int name_width, const range_t &range, const std::vector< double > &weights) const
Definition: patternGroup.h:44
osl::rating::PatternGroup::direction
Direction direction
Definition: patternGroup.h:16
osl::rating::Group::showTopN
void showTopN(std::ostream &os, int name_width, const range_t &range, const std::vector< double > &weights, int n) const
Definition: group.cc:100
osl::CArray
Definition: container.h:20
osl::rating::PatternLongGroup::bishop_direction4
static const CArray< Direction, 4 > bishop_direction4
Definition: patternGroup.h:33
osl::rating::PatternLongGroup::direction_id
int direction_id
Definition: patternGroup.h:36
osl::unpromote
Ptype unpromote(Ptype ptype)
ptypeがpromote後の型の時に,promote前の型を返す. promoteしていない型の時はそのまま返す
Definition: basic_type.h:157
osl
Definition: additionalEffect.h:6
osl::rating::PatternBlockGroup::PatternBlockGroup
PatternBlockGroup(Ptype attacker)
Definition: patternGroup.cc:199