просмотр вглубину

From
Mityay (2:5011/119.777)
To
All
Date
2002-06-08T20:47:27Z
Area
RU.ALGORITHMS
Здpавия желаю, *All*!

    Интересует алгоритм просмотра в глубину в тех же шахматах, шашках. Для простоты сойдут и крестики-нолики. Делаться, я думаю, должно что-то вроде такого:

int Recursia(int a, CMove *Move)
{
    int Ocenka = 0;

    if (a < MAX_DEPTH)
    {
        do
        {
            CMove *newmove = GetNextValidMove();
            if (newmove == NULL) break;
            Ocenka += Recursia(a+1, newmove);
        } while (1);
        Ocenka += CountFigures();
        return Ocenka;
    }
    else
    {
        return (CountFigures());
    }
}

    Вся проблема в том, что эта функция может давать неправильные ходы: так, если следующим ходом противник может выиграть, а машина видит, что сама может выиграть через 2 хода, если человек сыграет как полный идиот, то она выбирет именно такой путь, дав, на самом деле, выиграть человеку на следующем ходу. Значит, чем глубже смотрим - тем должны быть меньше коэффициенты, на которые мы умножаем Ocenka? И какие-то сверх-коэффициенты для случаев, когда можно, условно говоря, поставить на следующем ходу "мат". Далее: как определить, на какой ход человека машине рассчитывать? Те же шахматы всегда проводят определенную линию игры и видят НАИБОЛЕЕ ВЕРОЯТНЫЕ ходы человека. Как это реализовать?
    Наконец, стоит ли обходиться таким простым методом, как CountFigures (просто сосчитать число фигур на доске одного игрока и другого и вернуть разницу, можно отрицательную) или надо проводить дополнительный анализ? Как это сделать?
    Помогите, кто чем может. Спасибо.
    Да, все, что писал - лично мои умозаключения (включая алгоритм), так что возможно я вообще иду в неправильном направлении. Что делать?

* Originally in RU.ALGORITHMS
* копия ушла в N5011.CODING
* копия ушла в RU.GAME.DESIGN
* копия ушла в RU.AI

                                            C yважением, _/*Mityay*/_.

... обручальное кольцо есть первое звено в цепи супружеской жизни (с) Прутков
--- Teams: _[AMD] [VC++] [RTS&TBS] [SID MEIER'S] [] [УГАТУ-МО-06] [MT] [Z]_
 * Origin: HoMM Page: homm.narod.ru, E-mail: mityay@aport.ru (2:5011/119.777)