00001
00002
00003 #include "osl/checkmate/dualCheckmateSearcher.h"
00004 #include "osl/checkmate/dualCheckmateSearcher.tcc"
00005 #include "osl/checkmate/dominanceTable.h"
00006 #include "osl/state/hashEffectState.h"
00007
00008 namespace osl
00009 {
00010 namespace checkmate
00011 {
00012
00013 template class DualCheckmateSearcher<DominanceTable,LibertyEstimator,PieceCost>;
00014
00015 template bool DualCheckmateSearcher<DominanceTable,LibertyEstimator,PieceCost>
00016 ::isWinningStateByOracle<BLACK>
00017 (NumEffectState&, const HashKey&, const PathEncoding&, Move&,
00018 unsigned short&, int);
00019 template bool DualCheckmateSearcher<DominanceTable,LibertyEstimator,PieceCost>
00020 ::isWinningStateByOracle<WHITE>
00021 (NumEffectState&, const HashKey&, const PathEncoding&, Move&,
00022 unsigned short&, int);
00023
00024 template bool DualCheckmateSearcher<DominanceTable,LibertyEstimator,PieceCost>
00025 ::isWinningStateByOracleLastMove<BLACK>
00026 (NumEffectState&, const HashKey&, const PathEncoding&, Move&, Move,
00027 unsigned short&, int);
00028 template bool DualCheckmateSearcher<DominanceTable,LibertyEstimator,PieceCost>
00029 ::isWinningStateByOracleLastMove<WHITE>
00030 (NumEffectState&, const HashKey&, const PathEncoding&, Move&, Move,
00031 unsigned short&, int);
00032 }
00033 }
00034
00035 osl::checkmate::
00036 SharedOracles::SharedOracles(Player attacker)
00037 : oracles(attacker), oracles_last_move(attacker),
00038 oracles_after_attack(attacker)
00039 {
00040 }
00041
00042 void osl::checkmate::
00043 SharedOracles::showStatus() const
00044 {
00045 std::cerr << oracles.keySize() << ":"
00046 << oracles.totalSize() << " "
00047 << oracles_after_attack.keySize() << ":"
00048 << oracles_after_attack.totalSize();
00049 }
00050
00051
00052
00053
00054
00055
00056