All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
oracleProverLight.h
Go to the documentation of this file.
1 /* oracleProverLight.h
2  */
3 #ifndef _NTESUKI_ORACLE_PROVER_LIGHT_H
4 #define _NTESUKI_ORACLE_PROVER_LIGHT_H
5 
8 #include "osl/hash/hashKey.h"
9 #include "osl/player.h"
10 #include "osl/pathEncoding.h"
11 
12 namespace osl
13 {
14  namespace ntesuki
15  {
17  {
18  public:
20  typedef NumEffectState state_t;
22  private:
29 
30  template<class Searcher, Player P> class AttackHelper;
31  template<class Searcher, Player P> class DefenseHelper;
32 
33  public:
35  gen_t *g,
36  PathEncoding p,
37  table_t& t,
39  : state(s), mg(g), path(p), table(t), isscheme(isscheme)
40  {
41  }
42 
43  template <Player P>
44  bool startFromAttack(NtesukiRecord* record,
45  const NtesukiRecord* record_orig,
46  const unsigned int pass_left);
47  template <Player P>
48  bool startFromDefense(NtesukiRecord* record,
49  const NtesukiRecord* record_orig,
50  const unsigned int pass_left);
51 
52  private:
53  template <Player P>
54  bool attack(const NtesukiRecord *oracle,
55  const unsigned int pass_left);
56  template <Player P>
57  bool defense(const NtesukiRecord *oracle,
58  const unsigned int pass_left);
59 
60  };
61  } // namespace ntesuki
62 } // namespace osl
63 
64 #endif /* _NTESUKI_ORACLE_PROVER_LIGHT_H */
65 // ;;; Local Variables:
66 // ;;; mode:c++
67 // ;;; c-basic-offset:2
68 // ;;; End: