Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 просмотр вглубину   Mityay   08 Jun 2002 20:47:27 
 Re: просмотр вглубину   Andrei Bejenari   10 Jun 2002 15:41:56 
 просмотр вглубину   Roman Kukushkin   10 Jun 2002 20:24:32 
 просмотр вглубину   Sergey Prosin   10 Jun 2002 23:13:01 
Архивное /ru.algorithms/47193d021b99.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional