see.h
Go to the documentation of this file.
00001 /* see.h
00002  */
00003 #ifndef OSL_SEE_H
00004 #define OSL_SEE_H
00005 
00006 #include "osl/state/numEffectState.h"
00007 #include "osl/container/ptypeOSquareVector.h"
00008 namespace osl
00009 {
00010   namespace eval
00011   {
00012     class PtypeEvalTable;
00013     struct See
00014     {
00015       static int see(const NumEffectState& state, Move move,
00016                      const PieceMask& my_pin=PieceMask(), const PieceMask& op_pin=PieceMask(), const PtypeEvalTable *table=0);
00017 
00018       // public for test
00019       template <Player P>
00020       static int seeInternal(const NumEffectState& state, Move move,
00021                              const PieceMask& my_pin, const PieceMask& op_pin,
00022                              const PtypeEvalTable &table);
00023       template <Player P>
00024       static void findEffectPieces(const NumEffectState& state, Square effect_to,
00025                                    const PieceMask& my_pin, const PieceMask& op_pin,
00026                                    PtypeOSquareVector& my_pieces, PtypeOSquareVector& op_pieces);
00027       template <osl::Player P>
00028       static void findEffectPiecesAfterMove(const NumEffectState& state, Move move,
00029                                             const PieceMask& my_pin, const PieceMask& op_pin,
00030                                             PtypeOSquareVector& my_pieces, PtypeOSquareVector& op_pieces);
00031       static void findAdditionalPieces(const NumEffectState& state, Player attack, Square target,
00032                                        Square direct_attack_from,
00033                                        PtypeOSquareVector& out);
00040       template <Player P>
00041       static int computeValue(Square target, PtypeO ptypeO, 
00042                               const PtypeOSquareVector& my_pieces, 
00043                               const PtypeOSquareVector& op_pieces,
00044                               const PtypeEvalTable &table);
00045       struct StorePtypeO;
00046       struct FindEffectMore;
00047 
00048     };
00049   };
00050   using eval::See;
00051 }
00052 
00053 #endif /* _SEE_H */
00054 // ;;; Local Variables:
00055 // ;;; mode:c++
00056 // ;;; c-basic-offset:2
00057 // ;;; End:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines