|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Mityay 2:5011/119.777 08 Jun 2002 20:47:27 To : All Subject : просмотр вглубину --------------------------------------------------------------------------------
Интересует алгоритм просмотра в глубину в тех же шахматах, шашках. Для
простоты сойдут и крестики-нолики. Делаться, я думаю, должно что-то вроде
такого:
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? И какие-то сверх-коэффициенты для случаев, когда можно, условно
говоря, поставить на следующем ходу "мат". Далее: как определить, на какой ход
человека машине рассчитывать? Те же шахматы всегда проводят определенную линию
игры и видят HАИБОЛЕЕ ВЕРОЯТHЫЕ ходы человека. Как это реализовать?
Hаконец, стоит ли обходиться таким простым методом, как 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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/47193d021b99.html, оценка из 5, голосов 10
|