Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   алгоритм шахматной программы (http://forum.oszone.net/showthread.php?t=46703)

pauluss 15-03-2005 10:31 306875

алгоритм шахматной программы
 
Очень мине интересно, как работает программка игры в шахматы. Очевидно, что просчитывая ходы наперед необходимо оценивать ситуацию и выбирать наиболее выгодную. Так вот. Сложность. По каким таким признакам можно определить, что одна позиция более выигрышная чем другая? Просветите.

mrcnn 15-03-2005 12:45 306921

Цитата:

По каким таким признакам можно определить, что одна позиция более выигрышная чем другая?
1. Количество контролируемых полей.(чем больше фигур держат под воздействием поле, тем сильнее контроль над ним). Чем больше количество контролируемых полей, тем больше возможностей для маневра. Контролируемое поле может быть легко захвачено фигурой.
2. Количество слабых полей (то есть те, которые легко могут захватить вражеские фигуры) - наиболее сильные поля - те, которые находятся под контролем пешек, поскольку на них нельзя ставить более сильные фигуры, чем пешки (за искл. нек. случаев)..
3. Контроль над горизонталями / вертикалями (особенно для ладей)
4. Степень активности фигур (например, "плохой" слон, такой, чья активность очень ограничена, то есть диагонали закрыты пешками). Общее правило - в открытых позициях сильнее слон, в закрытых - конь.
5. Степень контроля над центром - малый центр (e4, d4,d5,e5), большой центр ( c3-f3, c4-f4,c5-f5,c6-f6) - чем больше контроль над центром, тем лучше для контролирующей стороны. Причина проста - очень велика маневренность фигур, хорошие возможности для начала атаки на каком-нибудь фланге, для переброски фигур с одного фланга на другой, ограничена маневренность фигур противника, при начале атаки противник не успеет перебросить фигуры.
6. Возможности для начала атаки, для проведения комбинаций.
7. Перевес: материальный (фигуры, в том числе пешки), временной.
и т.д.

Все вышенаписанное - для начала игры и середины, в конце игры действуют иные правила.

В конце игры:
1. сравнительное количество пешек
2. положение короля, пешек, других фигур (есть "плохое" , проигрышное положение фигур и пешек)
3. открытость-закрытость горизонталей
4. наличие проходных пешек
и т.д.

Вообще следовало бы прочитать книгу по стратегии и тактике шахмат (Волчок - Стратегия и тактика шахмат, 1988), и книгу по теории эндшпиля. Там обычно хорошо объясняется как оценивать позиции.

Искусственный интеллект для шахмат лучше всего делать с помощью генетических алгоритмов.

hasherfrog 15-03-2005 13:51 306945

Я думаю, что предложенное mrcnn - скорее, для середины игры. В начале и в конце программа просто имеет огромный набор уже кем-то сыгранных вариантов, из которых выбирает "свой" вариант игры.

ivank 15-03-2005 22:44 307081

http://www.i2r.ru/static/489/out_11914.shtml


Время: 15:57.

Время: 15:57.
© OSzone.net 2001-