Главная

О программе

Скачать

История версий

Ссылки

Играть!

Оставить отзыв

Целью создания asisChess являлось изучение и практика программирования на ActionScript. К сожалению, производительность ActionScript оставляет желать лучшего. Программы, написанные на этом языке работают в тысячи, а то и десятки тысяч раз медленнее аналогичных приложений, скомпилированных, как исполняемые. Это во многом определяет слабую игру шахмат, написанных для Flash.

Таким образом, asisChess нельзя рекомендовать опытным игрокам. Скорее, это удобный спарринг-партнер для начинающих шахматистов и любителей.

В программе asisChess применены базовые алгоритмы в области шахматного программирования:

  • альфа-бета процедура поиска лучшего хода, позволяющая существенно сократить число перебираемых ходов по сравнению с полным перебором всех ходов на заданную глубину
  • техника расчета форсированного варианта. В конце основного перебора ходов программа продолжает перебирать только взятия фигур
  • техника упорядочения ходов при переборе. Чтобы упомянутые альфа-бета и форсированный вариант были максимально эффективны, необходимо упорядочить ходы в переборе. В идеале - лучший ход в позиции должен перебираться первым. Реально никто на стадии перебора на знает какой же ход в позиции лучший (его, собственно и ищем) и программист упорядочивает ходы на основе некоторых правил и своего опыта, предлагая прогрмме просматривать в первую очередь "предположительно хорошие" ходы
  • Эвристика истории. Эта техника помогает упорядочить ходы в переборе. Программа запоминает какой ход на данном уровне перебора наиболее часто оказывался лучшим, и изучает его в первую очередь
  • Итеративные углубления. Изучив все продолжения игры на N ходов вперед, программа обнаруживает, что использовала не все время, предоставленное ей на обдумывание хода. В этом случае она запускает перебор ходов из начальной позиции на N+1 ходов. Если время истекло в процессе перебора на N+1 ход, программа делает лучший ход, найденый ранее при переборе на N ходов. Ближе к концу партии такой метод заметно увеличивает максимальную глубину перебора ходов.
  • Выборочные продления перебора. В некторых позициях программа принимает решение изучать ход глубже, чем на заданную глубину. Например, шахи королю можно продлить, изучая все возможности зашиты от шаха глубже. Поскольку шах - вещь относительно редкая в шахматах по сравнению с общим числом ходов, то продление шахов не сильно усложняет перебор. Однако, большое число шахов может лавинно увеличить дерево изучаемых ходов. asisChess продлевает все шахи, если общее число выполенных продлений не превышает некоторого предела MAX_EXTENTION
  • многие другие техники, такие как использование хеш или техники пустого хода, не реализовывались в asisChess версии 1.2 и младше

В будущем планируется превратить asisChess в шахматный «плейер», позволяющий работать с форматами PGN и FEN.

 
   

©Asis Group, 2006. Powered by AsisCMS. Heading image - © Alamy Images