00001 #include "osl/ntesuki/ntesukiSimulationSearcherProof.tcc"
00002 #include "osl/ntesuki/ntesukiSimulationSearcherDisproof.tcc"
00003 #include "osl/ntesuki/ntesukiMoveGenerator.h"
00004
00005 typedef NumEffectState state_t;
00006
00007
00008
00009 osl::ntesuki::NtesukiSimulationSearcher::
00010 NtesukiSimulationSearcher(state_t& state,
00011 NtesukiMoveGenerator *mg,
00012 PathEncoding&
00013 path,
00014 NtesukiTable& table,
00015 NtesukiRecord::ISScheme isscheme,
00016 bool verbose)
00017 : node_count(0),
00018 verbose(verbose),
00019 proof_count(0),
00020 proof_success_count(0),
00021 light_proof_success_count(0),
00022 disproof_count(0),
00023 disproof_success_count(0),
00024 debug(false),
00025 state(state),
00026 mg(mg),
00027 path(path),
00028 table(table),
00029 isscheme(isscheme)
00030 {
00031 }
00032
00033 osl::ntesuki::NtesukiSimulationSearcher::
00034 ~NtesukiSimulationSearcher()
00035 {
00036 if (verbose)
00037 std::cerr << "~NtesukiSimulationSeacher:\t("
00038 << node_count
00039 << ")\tproof("
00040 << light_proof_success_count << "/"
00041 << proof_success_count << "/"
00042 << proof_count
00043 << ")\tdisproof("
00044 << disproof_success_count << "/"
00045 << disproof_count
00046 << ")" << std::endl;
00047 }
00048
00049 template bool osl::ntesuki::NtesukiSimulationSearcher::
00050 startFromAttackProof<BLACK>(NtesukiRecord *record,
00051 const NtesukiRecord* record_orig,
00052 const unsigned int passLeft,
00053 const Move last_move);
00054
00055 template bool osl::ntesuki::NtesukiSimulationSearcher::
00056 startFromAttackProof<WHITE>(NtesukiRecord *record,
00057 const NtesukiRecord* record_orig,
00058 const unsigned int passLeft,
00059 const Move last_move);
00060
00061 template bool osl::ntesuki::NtesukiSimulationSearcher::
00062 startFromDefenseProof<BLACK>(NtesukiRecord *record,
00063 const NtesukiRecord* record_orig,
00064 const unsigned int passLeft,
00065 const Move last_move);
00066
00067 template bool osl::ntesuki::NtesukiSimulationSearcher::
00068 startFromDefenseProof<WHITE>(NtesukiRecord *record,
00069 const NtesukiRecord* record_orig,
00070 const unsigned int passLeft,
00071 const Move last_move);
00072
00073 template bool osl::ntesuki::NtesukiSimulationSearcher::
00074 startFromAttackDisproof<BLACK>(NtesukiRecord *record,
00075 const NtesukiRecord* record_orig,
00076 const unsigned int passLeft,
00077 const Move last_move);
00078
00079 template bool osl::ntesuki::NtesukiSimulationSearcher::
00080 startFromAttackDisproof<WHITE>(NtesukiRecord *record,
00081 const NtesukiRecord* record_orig,
00082 const unsigned int passLeft,
00083 const Move last_move);
00084
00085 template bool osl::ntesuki::NtesukiSimulationSearcher::
00086 startFromDefenseDisproof<BLACK>(NtesukiRecord *record,
00087 const NtesukiRecord* record_orig,
00088 const unsigned int passLeft,
00089 const Move last_move);
00090
00091 template bool osl::ntesuki::NtesukiSimulationSearcher::
00092 startFromDefenseDisproof<WHITE>(NtesukiRecord *record,
00093 const NtesukiRecord* record_orig,
00094 const unsigned int passLeft,
00095 const Move last_move);
00096
00097
00098
00099
00100
00101