My Project
openCheck.h
Go to the documentation of this file.
1 /* openCheck.h
2  */
3 #ifndef _MOVE_CLASSIFIER_OPENCHECK_H
4 #define _MOVE_CLASSIFIER_OPENCHECK_H
5 
8 #include "osl/numEffectState.h"
9 
10 namespace osl
11 {
12  namespace move_classifier
13  {
14  template <Player P>
15  struct OpenCheck
16  {
17  static bool isMember(const NumEffectState& state,
18  Ptype ptype,Square from,Square to)
19  {
20  return KingOpenMove<alt(P)>::isMember(state,ptype,from,to);
21  }
22  };
23 
24  template <Player P> struct ClassifierTraits<OpenCheck<P> >
25  {
26  static const bool drop_suitable = false;
27  static const bool result_if_drop = false;
28  };
29  } // namespace move_classifier
30 } // namespace osl
31 
32 #endif /* _MOVE_CLASSIFIER_OPENCHECK_H */
33 // ;;; Local Variables:
34 // ;;; mode:c++
35 // ;;; c-basic-offset:2
36 // ;;; End:
osl::Square
Definition: basic_type.h:532
osl::alt
constexpr Player alt(Player player)
Definition: basic_type.h:13
osl::move_classifier::ClassifierTraits
Definition: classifierTraits.h:11
osl::Ptype
Ptype
駒の種類を4ビットでコード化する
Definition: basic_type.h:84
osl::move_classifier::OpenCheck::isMember
static bool isMember(const NumEffectState &state, Ptype ptype, Square from, Square to)
Definition: openCheck.h:17
osl::move_classifier::OpenCheck
Definition: openCheck.h:16
osl::move_classifier::KingOpenMove
Pの王をopen checkにする手でないことをチェック.
Definition: kingOpenMove.h:22
osl::NumEffectState
利きを持つ局面
Definition: numEffectState.h:34
kingOpenMove.h
osl::move_classifier::ClassifierTraits::drop_suitable
static const bool drop_suitable
Definition: classifierTraits.h:12
numEffectState.h
classifierTraits.h
osl
Definition: additionalEffect.h:6