void 
GoUctDefaultPriorKnowledge::InitializeForNonRandomPolicyMove(
	const GoPointList& empty,
    const SgPointSet& pattern,
    const SgPointSet& atari,
    int nuSimulations)
{
    const GoBoard& bd = Board();
    for (GoPointList::Iterator it(empty); it; ++it)
    {
        const SgPoint p = *it;
        SG_ASSERT (bd.IsEmpty(p));
        if (BadSelfAtari(bd, p))
            Initialize(p, 0.1f, nuSimulations);
        else if (atari[p])
            Initialize(p, 0.8f, nuSimulations);
        else if (pattern[p])
            Initialize(*it,
                       0.5 + (m_patternGammas[*it] / m_maxPatternGamma) * 0.3,
                       nuSimulations);
        else
            Initialize(p, 0.4f, nuSimulations);
    }
    const GoPointList moves = m_policy.GetEquivalentBestMoves();
    for (GoPointList::Iterator it(moves); it; ++it)
        Initialize(*it, 1.0, nuSimulations);
}
void 
GoUctDefaultPriorKnowledge::InitializeForGlobalHeuristic(
	const GoPointList& empty,
    const SgPointSet& pattern,
    const SgPointSet& atari,
    SgUctValue nuSimulations)
{
    const GoBoard& bd = Board();
    const SgUctValue smallWeight = m_defaultPriorWeight * 3;

    for (GoPointList::Iterator it(empty); it; ++it)
    {
        const SgPoint p = *it;
        SG_ASSERT (bd.IsEmpty(p));
        if (BadSelfAtari(bd, p))
            Initialize(p, 0.1f, nuSimulations);
        else if (atari[p])
            Initialize(p, 1.0f, smallWeight);
        else if (pattern[p])
            Initialize(*it, 
                       0.6 + (m_patternGammas[*it] / m_maxPatternGamma) * 0.4,
                       smallWeight);
		else
            Initialize(p, 0.5f, smallWeight);
    }
}
void 
GoUctDefaultPriorKnowledge::InitializeForRandomPolicyMove(
	const GoPointList& empty,
    int nuSimulations)
{
    const GoBoard& bd = Board();
    for (GoPointList::Iterator it(empty); it; ++it)
    {
        const SgPoint p = *it;
        SG_ASSERT (bd.IsEmpty(p));
        if (BadSelfAtari(bd, p))
            Initialize(p, 0.1f, nuSimulations);
        else
            Clear(p); // Don't initialize
    }
}