24 const int depth_threshold = 60, visit_threshold = 4, scale = 16;
26 if (depth > depth_threshold || table.find(key) != table.end()
27 || visit < visit_threshold)
29 const std::vector<book::WMove>& moves = book.
moves(index);
31 for (
WMove move: moves)
34 const int cv = readRecursive(child, move.stateIndex(), book, depth+1, visit);
35 if (cv < visit_threshold || cv*scale < visit || move.weight == 0)
37 children.
push_back(std::make_pair(cv, move.move));
41 std::sort(children.
begin(), children.
end());
42 std::reverse(children.
begin(), children.
end());
43 if (! children.
empty()) {
46 for (
size_t i=0; i<children.
size(); ++i) {
47 store[i] = children[i].second;
48 if (i+1 == store.
size())