説明を見る。00001 #ifndef OSL_ADDITIONAL_EFFECT_H
00002 #define OSL_ADDITIONAL_EFFECT_H
00003 #include "osl/numEffectState.h"
00004
00005 namespace osl
00006 {
00007 namespace effect_util
00008 {
00012 struct AdditionalEffect
00013 {
00014 private:
00015 static void find(const NumEffectState&, Square target,
00016 const PieceVector& direct_effects,
00017 PieceVector& black, PieceVector& white);
00018 template <int count_max>
00019 static int count(const NumEffectState&, Square target,
00020 Player attack);
00021 public:
00026 static bool hasEffect(const NumEffectState&, Square target,
00027 Player attack);
00028 static bool hasEffectStable(const NumEffectState&, Square target,
00029 Player attack);
00034 static int count2(const NumEffectState&, Square target,
00035 Player attack);
00040 static void find(const NumEffectState&, Square target,
00041 PieceVector& black, PieceVector& white);
00042 static void count(const NumEffectState&, Square target,
00043 int& black, int& white);
00044 static int count(const NumEffectState& state, Player pl, Square target)
00045 {
00046 int black, white;
00047 count(state, target, black, white);
00048 return (pl == BLACK) ? black : white;
00049 }
00050 };
00051 }
00052 using effect_util::AdditionalEffect;
00053 }
00054
00055 #endif
00056
00057
00058
00059