5 #include "osl/apply_move/applyMoveWithPath.h"
9 using namespace osl::ntesuki;
11 template<
class Search,
class F>
class
23 : searcher(searcher), state(state), child(child)
29 (*searcher).template forEachRecordFrom<F>(func, state, child);
39 for (iterator it = begin(); it != end(); ++it)
41 for (NtesukiRecord::RecordList::iterator p = it->second.begin();
42 p != it->second.end(); ++p)
54 NumEffectState& state,
63 std::vector<NtesukiMove>
moves;
64 std::copy(all_moves.begin(), all_moves.end(),
65 std::back_insert_iterator<std::vector<NtesukiMove> >(
moves));
66 typename F::Compare c;
67 std::sort(moves.begin(), moves.end(), c);
68 for (std::vector<NtesukiMove>::const_iterator it = moves.begin();
69 it != moves.end(); ++it)
75 if (func.withChildMove(m, child))
78 ApplyMoveOfTurn::doUndoMove(state, m.
getMove(), helper);
94 if (rootState.get() == NULL)
99 NumEffectState state(*rootState);
100 forEachRecordFrom<F>(func, state, root);