Сколько фигур в шахматной игре. Правила шахмат. Фигуры в шахматах. Шахматные фигуры
В шахматах существует шесть разных (видов или наименований) фигур - король, ферзь, ладья, слон, конь и пешка. В шахматы играют два соперника; один играет белыми фигурами, другой чёрными. У каждого игрока 16 фигур - один король, один ферзь, две ладьи, два слона, два коня и восемь пешек. Каждая из этих фигур ходит по шахматной доске по-своему.
Описания фигур:
Король
Ходит на одно поле в любом направлении. Кроме того, может участвовать в рокировке. Самая важная фигура, поскольку невозможность защитить короля от атаки противника (эта ситуация называется «мат») означает проигрыш партии. В комплекте шахматных фигур король обычно - самая высокая фигура, либо одна из двух самых высоких фигур (вторая - ферзь).
Ферзь
Ходит на любое число полей по вертикали, горизонтали или диагонали (соединяет в себе ходы ладьи и слона). В общем случае, самая сильная фигура на шахматной доске. Изначально (в старом арабском шатрандже) ферзь ходил лишь на одно поле по диагонали; превращение его в наиболее сильную фигуру произошло уже в европейских шахматах. В современной шахматной теории ферзь относится к «тяжёлым фигурам», наряду с ладьёй. Внешний вид фигуры в традиционных «стаунтоновских» шахматах аналогичен королю, но фигура увенчана небольшим шариком и обычно несколько ниже, в отличие от короля, который, как правило, выше ферзя и увенчан крестом.
Ладья
Ходит на любое число полей по вертикали или горизонтали. Может участвовать в рокировке. Игрок начинает партию с двумя ладьями, стоящими на крайних полях первой горизонтали. Как и ферзь, относится теорией к «тяжёлым фигурам». Фигура обычно имеет вид стилизованной круглой крепостной башни (что соответствует европейскому её названию, с разных языков переводящимся именно как «крепостная башня»). В старых русских шахматных комплектах имела вид стилизованного корабля (ладьи). По некоторым предположениям, различные наименования данной фигуры связаны с её первоначальным названием и видом. В чатуранге она называлась «колесница», то есть «ратх». В арабском шатрандже название превратилось в «Рух» (имелась в виду мифическая птица). Её стилизованные изображения, по предположениям шахматных историков, на Руси были приняты за изображения визуально похожей русской ладьи, от чего и произошло русское название фигуры. В Европе же изображение фигуры было связано с названием, созвучным с «rook» (утёс, башня), в результате соответствующая европейская шахматная фигура стала изображаться в виде крепостной башни.
Слон
Ходит на любое число полей по диагоналям. В чатуранге и шатрандже ходил через одно поле по диагонали, являясь, как и конь, «прыгающей» фигурой (при ходе перешагивал через свои и чужие фигуры, стоящие на пути). В начале игры у игрока есть два слона - белопольный и чёрнопольный. В силу геометрии шахматной доски, слоны перемещаются только по диагоналям своего цвета. Относится к классу «лёгких фигур», вместе с конём. Фигура обычно ниже короля и ферзя, верхняя часть имеет вид капли (или капюшона) заострением вверх, представляет собой стилизацию одеяния католических и протестантских священников, что соответствует английскому названию «bishop» - «епископ».
Конь
Ходит русской буквой «Г» (или буквой "L") - сначала на два поля по вертикали или горизонтали, потом ещё на одно поле по горизонтали или вертикали перпендикулярно первоначальному направлению. Единственная фигура в современных шахматах, которая ходит не по прямой линии и является «прыгающей» - может «перепрыгивать» через свои и неприятельские фигуры. Одна из двух фигур (вторая - король), ход которой не изменился со времён чатуранги. В начале партии у каждого игрока два коня, стоящих на вторых слева и справа полях первой от него горизонтали. Относится к «лёгким фигурам». Фигура имеет вид головы коня на подставке. Английское название «knight» - рыцарь.
Пешка
Ходит на одно поле по вертикали вперёд. Из исходного положения может сделать один ход на два поля вперёд. Бьёт на одно поле по диагонали вперёд. При выполнении хода на два поля может быть следующим ходом взята на проходе пешкой противника (т. н. взятие «энпассан»). Единственная фигура в шахматах, у которой тихий ход и ход со взятием различаются. В комплекте фигур у каждого игрока по восемь пешек, в начальной позиции пешки стоят на второй от игрока горизонтали, прикрывая фигуры. Если в процессе игры пешка достигает последней горизонтали, то она превращается в любую фигуру, по желанию игрока, кроме короля. За редкими исключениями, обычно пешку превращают в ферзя. Фигура самая маленькая из всех в комплекте. Несмотря на слабость, пешки очень важны в шахматной партии, так как зачастую составляют основу оборонительной структуры игрока, являясь и «наполнителем» поля, и «пушечным мясом». В эндшпиле роль пешек многократно возрастает обычно за счёт того, что часть из них являются так называемыми «проходными пешками», потенциально способными достигнуть последней горизонтали и превратиться в фигуру.
Классификация
Фигуры делятся на:
- Лёгкие фигуры - конь и слон.
- Тяжёлые фигуры - ладья и ферзь.
- Король - из-за своей особой роли в партии не относится ни к лёгким, ни к тяжёлым фигурам.
- Пешка - так же, как и король, не относится ни к лёгким, ни к тяжёлым фигурам.
В терминологии имеется неоднозначность: в узком смысле фигурами называются все шахматные фигуры, кроме пешек. Обычно слово «фигура» в комментарии к шахматной партии употребляется именно в этом смысле, например, выражение типа «потеря фигуры» означает потерю лёгкой или тяжёлой фигуры, но не пешки.
Сравнительная сила фигур
Проблема сравнительной силы и ценности тех или иных групп фигур постоянно возникает в шахматных партиях, когда стоит вопрос о размене. В шахматной теории силу фигур принято измерять в пешках. Общеприняты следующие примерные соотношения:

Следует учитывать, что приведённые соотношения вовсе не достаточны для объективной оценки тех или иных действий в конкретной партии. В игре к ним добавляются многочисленные дополнительные соображения. На сравнительную ценность фигур может влиять тип разыгрываемой позиции, этап партии, на котором производится размен, положение конкретных фигур. Так, практически любая фигура в центре доски держит под ударом больше полей, чем на стороне и, тем более, в углу, поэтому размен своей угловой фигуры на равнозначную центральную фигуру противника может быть выгодным. Конь и слон формально считаются равноценными, но на практике их сравнительная ценность очень сильно зависит от ситуации. Два слона почти всегда сильнее двух коней. Слон сильнее коня в игре против пешек, слон и пешки сильнее в игре против ладьи противника, чем конь и то же количество пешек. Слон и ладья обычно сильнее, чем конь и ладья, однако ферзь и конь часто оказываются сильнее, чем ферзь и слон. Двумя слонами можно дать мат одинокому королю, двумя конями - нет. В шахматах действия дальнобойных фигур почти всегда ограничены другими фигурами, в то время как конь может перепрыгивать через них. От шаха коня невозможно закрыться - нужно либо отходить королем, либо забирать коня.
Правда, в последнее время ученые, то ли где-то раскопали, то ли придумали еще одну версию появления шахматного слона на русских шахматных досках . Оказывается, что слон – это такое большое животное, которое Слоном Слоняется по лесам. Вот такие ученые, не поймешь их иногда.
Сказочная шахматная история о шахматных слонах, офицерах и шутах
Где водятся слоны? Какие из них более ленивые?
Слоны водятся в Африке и в Индии. Правда, сейчас их можно встретить в любой стране, но только в Зоопарке или Цирке. А на вопрос, какие слоны более ленивые, ответ очень простой. Африканские Слоны страшно ленивые и вредные. Их совсем невозможно заставить работать. Ходят себе по Африке и листья с баобабов объедают. Поэтому в Африке такие огромные пустыни.
Индийские же слоны, наоборот – трудяги. И они никогда не отказываются немножко поработать. Однажды, когда в Африке снимался фильм, то на съемки пригласили Индийских Слонов, так как африканские работать отказались. Стояли и смотрели, как Индийские слоны играли за Африканских. Тем бы все на солнышке греться. Такое частенько случается и на шахматной доске. Пока одни шахматные слоны работают, другие загорают и жру бананы!
Слоны у древних индусов были и помощниками дома, если было нужно перенести тяжелый груз, и средством передвижения, если индус хотел поехать в гости, и боевым другом. Слоны не могут наступить на человека, так как они очень аккуратные животные. Но если им сделать больно – хлестнуть плеткой, то слон побежит, куда его направит наездник.За долгие столетия у шахматных слонов отвалились хобот, уши и хвост. Много в них играли, и бедняги часто падали на пол. При падении бивни и другие части откалывались, а потери не всегда восстанавливались на месте. Бивни часто исчезают и сейчас даже у настоящих слонов. Любят богатые люди, когда разные украшения и шахматные фигуры делают из слоновой кости.
Поэтому шахматные слоны перестали пастись на шахматной доске, а вместо них появились…
Вспомните ШАХскую армию . Войско было очень сильным. Пехоту поддерживала быстрая конница, управляемая смелыми джигитами, и могучая слоновница. Боевые слоны, хоть и умные животные, но все равно ими надо управлять и кормить. Поэтому на каждом слоне сидел опытный наездник, как правило, офицер. Во время сражения слоны могли встретиться друг с другом, столкнуться и от сильного удара всадник мог слететь со слона. То же могло произойти и во время долгих переходов. Монотонное покачивание усыпляло всадника, и он мог сползти с головы слона и упасть на землю. Поэтому заботливый Ферзь приказал надевать на голову Офицеров высокие остроконечные шлемы, чтобы им при падении шишек не набить. Офицер падал со слона головой вниз, зарывался шлемом в песочек и так и стоял, дрыгая ножками, пока не подходила пехота, вытаскивали его из земли и закидывала его обратно на слона.
Так часто приходилось бедным солдатам закидывать Офицеров на Слонов, что со временем у всех офицеров появилась кличка «СЛОН». «Опять этот СЛОН заснул», - говорила пехота. Значит опять трудягам-солдатам работать. Поэтому нетрудно догадаться, почему у шахматной фигуры за 2000 лет отвалились хобот, уши, бивни и хвост, зато появился острый длинный шлем. Но название СЛОН осталось, хотя, признаться и не во всех странах.Именно название шахматного слона «говорит» о том, что игра шахматы родилась на Востоке. В России это слово – название фигуры – прижилось потому, что наши переводчики точно перевели название шахматных фигур.
По-арабски ФИЛ – слон. Но итальянцы и французы не захотели «узнать» в арабских и персидских Филах могучее животное и тем более выпустить его на шахматную доску. То ли они не услышали, то ли специально поменяли всего одну букву и вместо Фила получился Фул, то есть вместо Слона – Шут! Без шутов при дворах французских королей было бы скучновато, он всех веселил, говорил то, о чем даже боялись подумать другие.
Со временем все привыкли, что около Королевских Величеств всегда были шуты. Кстати, чаще всего шутами были умнейшие дворяне, а при дворе это была очень высокая должность.
Шуты оставили след в истории и в литературе. Шута при короле Лире прославил Шекспир. Только шут действительно любил своего короля. Он предупреждали Лира не отдавать все своим жестоким дочерям. Не послушался король своего шута…
Не менее известен шут Великого Петра I – Степан Вытащи, кстати, прекрасный шахматист. Частенько он самого Царя обыгрывал в шахматы . Еще одна должность была у шута Степана Одной шутовской зарплаты не хватало, чтобы прокормить семью, и он подрабатывал палачом.
След в истории оставил шут Балакирев. Сколько анекдотов и веселых историй, связанных с этим шутом, дошло до наших дней. Ох, и досталось же от него многим знатным Фигурам Российского Царства! Шуты были особами, особо приближенными к Монархам. Они выполняли важнейшие поручения, могли просто дать совет в шутливой форме королю, а то и грубо раскритиковать действия Их Величества. Многие придворные пользовались этим, но сначала им приходилось сходить к шуту на поклон и заручиться его поддержкой.
Шут не ходил прямо по ковровым дорожкам королевского дворца, ему большее удовольствие доставляло пересекать залы наискосок по диагонали, так же ходит и шахматный слон, по диагонали.
Всеволод Викторович Костров
Задайте вопрос или Оставьте свой комментарий
Читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось - в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.
Вступление: о шахматных программах
Не будем детально углубляться в архитектуру шахматных программ - это могло бы стать темой отдельной публикации или даже их серии. Рассмотрим только самые базовые принципы. Основными компонентами практически любого небелкового шахматиста являются поиск и оценка позиции .
Поиск представляет собой перебор вариантов, то есть итеративное углубление по дереву игры. Оценочная функция отображает набор позиционных признаков на числовую шкалу и служит целевой функцией для поиска наилучшего хода. Она применяется к листьям дерева, и постепенно «возвращается» к исходной позиции (корню) с помощью альфа-бета процедуры или её вариаций.
Строго говоря, настоящая
оценка может принимать только три значения: выигрыш, проигрыш или ничья - 1, 0 или 1/2 . По теореме Цермело для любой заданной позиции она определяется однозначно. На практике же из-за комбинаторного взрыва ни один компьютер не в состоянии просчитать варианты до листьев полного дерева игры (исчерпывающий анализ в эндшпильных базах данных - это отдельный случай; 32-фигурных таблиц в обозримом будущем не появится… и в необозримом, скорее всего, тоже). Поэтому программы работают в так называемой модели Шеннона
- пользуются усечённым деревом игры и приближённой оценкой, основанной на различных эвристиках.
Поиск и оценка не существуют независимо друг от друга, они должны быть хорошо сбалансированы. Современные переборные алгоритмы давно уже не являются «тупым» перебором вариантов, они включают в себя многочисленные специальные правила, связанные в том числе и с оценкой позиции.
Первые такие усовершенствования поиска появились ещё на заре шахматного программирования, в 60-х годах XX в. Можно упомянуть, например, технику форсированного варианта (ФВ) - продление отдельных ветвей поиска до тех пор, пока позиция не «успокоится» (закончатся шахи и взаимные взятия фигур). Продления существенно увеличивают тактическую зоркость компьютера, а также приводят к тому, что дерево поиска становится очень неоднородным - длина отдельных ветвей может в несколько раз превышать длину соседних, менее перпективных. Другие улучшения поиска, наоборот, представляют собой отсечения или сокращения поиска - и здесь критерием отбрасывания плохих вариантов может, в числе прочего, служить всё та же статическая оценка.
Параметризация и улучшение поиска методами машинного обучения - отдельная интересная тема, но сейчас мы оставим её в стороне. Займёмся пока только оценочной функцией.
Как компьютер оценивает позицию

Дальнейшее уточнение оценки может включать всё более и более тонкие признаки шахматной позиции: наличие и продвинутость проходных пешек, близость фигур к позиции неприятельского короля, его пешечное прикрытие и т. д. Легендарная «Каисса», первая чемпионка мира среди программ (1974) имела оценочную функцию из нескольких десятков признаков . Все они подробно описаны в книге «Машина играет в шахматы», библиографическая ссылка на которую приводится в конце статьи.
Одна из самых «навороченных» оценочных функций была у машины Deep Blue, прославившейся своими матчами с Каспаровым в 1996-97 гг. (подробную историю этих матчей можно прочитать в недавней серии статей на Geektimes .)
Широко распространено мнение, что сила Deep Blue основывалась исключительно на колоссальной скорости перебора вариантов. 200 миллионов позиций в секунду, полный (без отсечений) перебор на 12 полуходов - к таким параметрам шахматные программы на современном железе только-только приближаются. Однако, дело было не только в быстродействии. По объёму «шахматных знаний» в оценочной функции эта машина также намного превосходила всех. Оценка Deep Blue была реализована аппаратно и включала до 8000 различных признаков. Для настройки её коэффициентов привлекались сильные гроссмейстеры (достоверно известно о работе с Джоэлем Бенджамином, тестовые партии с разными версиями машины играл Давид Бронштейн).
Не располагая такими ресурсами, как создатели Deep Blue, ограничим задачу. Из всех признаков позиции, учитываемых для подсчёта оценки, возьмём самый значимый - соотношение материала на доске.
Стоимость фигур: простейшие модели
Если взять любую шахматную книгу для начинающих, сразу за главой с объяснением шахматных ходов обычно приводится табличка сравнительной ценности фигур, примерно такая:Королю иногда приписывается конечная стоимость, заведомо б?льшая, чем сумма всего материала на доске - например, 200 единиц. В данном исследовании мы оставим Его Величество в покое, и рассматривать королей не будем вообще. Почему? Ответ простой: они всегда присутствуют на доске, поэтому их материальная оценки взаимно вычитаются, и на общий баланс сил не влияют.
Приведённые стоимости фигур должны рассматриваться только как некоторые базовые ориентиры. В реальности фигуры могут «дорожать» и «дешеветь» в зависимости от ситуации на доске, а также от стадии партии. В качестве поправки первого порядка обычно рассматривают комбинации из двух-трёх фигур - своих и противника.
Вот как оценивал различные сочетания материала в своём классическом «Учебнике шахматной игры» третий чемпион мира :
С точки зрения общей теории слона и коня следует считать одинаково ценными, хотя, по моему убеждению, слон в большинстве случаев оказывается более сильной фигурой. Между тем считается вполне установленным, что два слона почти всегда сильнее двух коней.
Слон в игре против пешек сильнее коня, а вместе с пешками также оказывается более сильным против ладьи, нежели конь. Слон и ладья тоже сильнее коня и ладьи, но ферзь и конь могут оказаться сильнее, чем ферзь и слон. Слон часто стоит больше трех пешек, о коне же это редко можно сказать; он даже может оказаться слабее трех пешек.
Ладья по силе равна коню и двум пешкам или же слону и двум пешкам, но, как сказано выше, слон в борьбе против ладьи сильнее коня. Две ладьи несколько сильнее ферзя. Они немного слабее двух коней и слона и еще слабее двух слонов и коня. Сила коней падает по мере размена фигур на доске, сила же ладьи, напротив, возрастает.
Наконец, как правило, три легкие фигуры сильнее ферзя.
Оказывается, большей части подобных правил можно удовлетворить, оставаясь в рамках линейной модели, и просто слегка сместив стоимости фигур от их «школьных» значений. Например, в одной из статей приводятся следующие граничные условия:
B > N > 3P
B + N = R + 1.5P
Q + P = 2R
И значения, им удовлетворяющие:
P = 100
N = 320
B = 330
R = 500
Q = 900
K = 20000
Имена переменных соответствуют обозначениям фигур в английской нотации: P - пешка, N - конь, B - слон, R - ладья, Q - ферзь, K - король. Стоимости здесь и далее указаны в сотых долях пешки.
На самом деле, приведённый набор значений не является единственным решением. Более того, даже несоблюдение каких-то из «неравенств им. Капабланки» не приведёт к резкому падению силы игры программы, а только повлияет на её стилевые особенности.
В качестве эксперимента я провёл небольшой матч-турнир четырёх версий своего движка GreKo с разными весами фигур против трёх других программ - каждая из версий сыграла 3 матча по 200 партий со сверхмалым контролем времени (1 секунда + 0.1 сек. на ход). Результаты приведены в таблице:
Версия | Пешка | Конь | Слон | Ладья | Ферзь | vs. Fruit 2.1 | vs. Crafty 23.4 | vs. Delfi 5.4 | Рейтинг |
---|---|---|---|---|---|---|---|---|---|
GreKo 12.5 | 100 | 400 | 400 | 600 | 1200 | 61.0 | 76.0 | 71.0 | 2567 |
GreKo A | 100 | 300 | 300 | 500 | 900 | 55.0 | 69.0 | 73.0 | 2552 |
GreKo B | 100 | 320 | 330 | 500 | 900 | 57.0 | 71.0 | 64.0 | 2548 |
GreKo C | 100 | 325 | 325 | 550 | 1100 | 72.5 | 74.5 | 69.0 | 2575 |
«Классические» стоимости шахматного материала были получены интуитивно, путём осмысления шахматистами своего практического опыта. Предпринимались также попытки подвести под эти значения какую-то математическую базу - например, на основе мобильности фигур, числа полей, которые они могут держать под контролем. Мы же попробуем подойти к вопросу экспериментально - на базе анализа большого количества шахматных партий. Для вычисления стоимостей фигур нам не понадобится приближённая оценка позиций из этих партий - только их результаты, как самая объективная мера успеха в шахматах.
Материальный перевес и логистическая кривая
Для статистического анализа был взят PGN-файл, содержащий почти 3000 шахматных партий в блиц между 32 разными шахматными движками, в диапазоне от 1800 до 3000 пунктов Эло. С помощью специально написанной утилиты для каждой партии был составлен список материальных соотношений, возникших на доске. Каждое соотношение материала попадало в статистику не сразу после взятия фигуры или превращения пешки - сначала должны были произойти ответные взятия или несколько «тихих» ходов. Таким образом отфильтровывались краткосрочные «скачки материала» на 1-2 хода при разменах.Затем по уже известной нам шкале «1-3-3-5-9» рассчитывался материальный баланс позиции, и для каждого его значения (от -24 до 24) накапливалось количество очков, набранных белыми. Полученная статистика представлена на следующем графике:
По оси x - материальный баланс позиции DM с точки зрения белых, в пешках. Он вычисляется как разность суммарной стоимости всех белых фигур и пешек и такой же величины для чёрных. По оси y - выборочное математическое ожидание результата партии (0 - победа чёрных, 0.5 - ничья, 1 - победа белых). Мы видим, что экспериментальные данные очень хорошо описываются логистической кривой :
Простой визуальный подбор позволяет определить параметр кривой: a=0.7
, размерность его - обратные пешки.
Для сравнения на графике приведены ещё две логистические кривые с другими значениями параметра a
.
Что это означает на практике? Пусть мы видим случайно выбранную позицию, в которой у белых перевес в 2 пешки (DM = 2 ). С вероятностью, близкой к 80%, мы можем утверждать: партия закончится победой белых. Аналогично, если у белых не хватает слона или коня (DM = -3 ), их шансы не проиграть всего лишь около 12%. Позиции с материальным равенством (DM = 0 ), как и можно было ожидать, чаще всего заканчиваются вничью.
Постановка задачи
Теперь мы готовы сформулировать задачу оптимизации оценочной функции в терминах логистической регрессии.Пусть нам дан набор векторов следующего вида:
Где D i , i = P...Q - разность количества белых и чёрных фигур типа i (от пешки до ферзя, короля не считаем). Эти вектора представляют собой материальные соотношения, встретившиеся в партиях (одной партии обычно соответствует несколько векторов).
Пусть дан также вектор y j , компоненты которого принимают значения 0, 1 и 2. Эти значения соответствуют исходам партий: 0 - победа чёрных, 1 - ничья, 2 - победа белых.
Требуется найти вектор th стоимостей фигур:
Минимизирующий функцию стоимости для логистической регрессии:
,
где - логистическая функция для векторного аргумента.
Для предотвращения «переобучения» и эффектов неустойчивости в найденном решении в функцию стоимости можно добавить параметр регуляризации, не дающий коэффициентам в векторе принимать слишком большие значения:
Величина коэффициента при параметре регуляризации выбирается небольшая, в данном случае использовалось значение l=10 -6 .
Для решения задачи минимизации применим простейший метод градиентного спуска с постоянным шагом:
Где компоненты градиента функции J reg имеют вид:
Так как мы ищем симметричное решение, при материальном равенстве дающее вероятность исхода партии 1/2 , нулевой коэффициент вектора th полагаем всегда равным нулю, и нам для градиента нужно только второе из данных выражений.
Вывод приведённых формул мы здесь рассматривать не будем. Всем интересующимся их обоснованием настоятельно рекомендую уже упоминавшийся курс по машинному обучению на Coursera.
Программа и результаты
Так как первая часть задачи - разбор PGN-файлов и выделение для каждой позиции набора признаков - уже была практически реализована в коде шахматного движка, оставшуюся часть было решено также написать на C++. Исходный код программы и тестовые наборы партий в PGN-файлах доступны на github . Программа может быть собрана и запущена под Windows (MSVC) или Linux (gcc).Возможность использовать в дальнейшем специализированные средства вроде Octave, MATLAB, R и т.п. также предусмотрена - в процессе работы программа генерирует промежуточный текстовый файл с наборами признаков и исходами партий, который легко может быть импортирован в эти среды.
Файл содержит текстовое представление набора векторов x j - матрицы размерности m x (n + 1) , в первых 5 столбцах которой содержатся компоненты материального баланса (от пешки до ферзя), а в 6-м - результат партии.
Рассмотрим простой пример. Ниже приводится PGN-запись одной из тестовых партий.
1. d4 d5 2. c4 e6 3. e3 c6 4. Nf3 Nd7 5. Nbd2 Nh6 6. e4 Bb4 7. a3 Ba5 8.
cxd5 exd5 9. exd5 cxd5 10. Qe2+ Kf8 11. Qb5 Nf6 12. Bd3 Qe7+ 13. Kd1 Bb6
14. Re1 Bd7 15. Qb3 Be6 16. Re2 Qc7 17. Qb4+ Kg8 18. Nb3 Bf5 19. Bb1 Bxb1
20. Rxb1 Nf5 21. Bd2 a5 22. Qa4 h6 23. Rc1 Qb8 24. Bxa5 Qf4 25. Qb4 Bxa5
26. Nxa5 Kh7 27. Nxb7 Rab8 28. a4 Ne4 29. h3 Rhc8 30. Ra1 Rc7 31. Qa3 Rcxb7
32. g3 Qc7 33. Rc1 Qa5 34. Rxe4 dxe4 35. Rc5 Qa6 36. Nd2 Nxd4 37. Rc4 Nb3
38. Nxb3 Qxc4 39. Nd2 Rd8 40. Qc3 Qf1+ 41. Kc2 Qe2 42. f4 e3 43. b4 Rc7 44.
Kb3 Qd1+ 45. Ka2 Rxc3 46. Nb1 Qxa4+ 47. Na3 Rc2+ 48. Ka1 Rd1# 0-1
Соответствующий фрагмент промежуточного файла имеет вид:
0 0 0 0 0 0
1 0 0 0 0 0
2 0 0 0 0 0
2 -1 0 0 0 0
2 0 0 -1 0 0
1 0 0 -1 0 0
1 1 0 -2 0 0
В 6-м столбце везде 0 - это результат партии, победа чёрных. В остальных столбцах - баланс числа фигур на доске. В первой строке полное материальное равенство, все компоненты равны 0. Вторая строка - лишняя пешка у белых, это позиция после 24-го хода. Обратим внимание, что предшествующие размены никак не отражены, они происходили слишком быстро. После 27-го хода у белых уже 2 лишних пешки - это строка 3. И т.д. Перед заключительной атакой чёрных у белых пешка и конь за две ладьи:
Как и размены в дебюте, финальные ходы в партии на содержимое файла не повлияли. Они были отсеяны «фильтром тактики», потому что представляли собой серию взятий, шахов и уходов от них.
Такие же записи создаются для всех анализируемых партий, в среднем получается по 5-10 строк на игру. После разбора PGN-базы с партиями этот файл поступает на вход второй части программы, занимающейся собственно решением задачи минимизации.
В качестве начальной точки для градиентного спуска можно, например, взять вектор со значениями весов фигур из учебника. Но интереснее не давать алгоритму никаких подсказок, и стартовать из нуля. Оказывается, наша функция стоимости достаточно «хорошая» - траектория быстро, за несколько тысяч шагов, выходит на глобальный минимум. Как изменяются при этом стоимости фигур, показано на следующем графике (на каждом шаге выполнялась нормировка на вес пешки = 100):
График сходимости функции стоимости
Текстовый вывод программы
C:\CHESS>pgnlearn.exe OpenRating.pgn Reading file: OpenRating.pgn Games: 2997 Created file: OpenRating.mat Loading dataset... [ 20196 x 5 ] Solving (gradient method)... Iter 0: [ 0 0 0 0 0 ] -> 0.693147 Iter 1000: [ 0.703733 1.89849 2.31532 3.16993 6.9148 ] -> 0.470379 Iter 2000: [ 0.735853 2.08733 2.51039 3.47418 7.7387 ] -> 0.469398 Iter 3000: [ 0.74429 2.13676 2.56152 3.55386 7.95879 ] -> 0.46933 Iter 4000: [ 0.746738 2.15108 2.57635 3.57697 8.02296 ] -> 0.469324 Iter 5000: [ 0.747467 2.15535 2.58077 3.58385 8.0421 ] -> 0.469324 Iter 6000: [ 0.747685 2.15663 2.58209 3.58591 8.04785 ] -> 0.469324 Iter 7000: [ 0.747751 2.15702 2.58249 3.58653 8.04958 ] -> 0.469324 Iter 8000: [ 0.747771 2.15713 2.58261 3.58672 8.0501 ] -> 0.469324 Iter 9000: [ 0.747777 2.15717 2.58265 3.58678 8.05026 ] -> 0.469324 Iter 10000: [ 0.747779 2.15718 2.58266 3.58679 8.0503 ] -> 0.469324 PIECE VALUES: Pawn: 100 Knight: 288.478 Bishop: 345.377 Rook: 479.66 Queen: 1076.56 Press ENTER to finish
После нормировки и округления получаем следующий набор величин:
Проверим, выполняются ли «правила Капабланки»?
Соотношение | Численные значения | Выполняется? |
---|---|---|
B > N | 345 > 288 | да |
B > 3P | 345 > 3 * 100 | да |
N > 3P | 288 < 3 * 100 | нет |
B + N = R + 1.5P | 345 + 288 ~= 480 + 1.5 * 100 | да (с погрешностью < 0.5%) |
Q + P = 2R | 1077 + 100 > 2 * 480 | нет |
Можно ли полученные значения использовать для усиления игры программы? Увы, на данном этапе ответ отрицательный. Тестовые блиц-матчи показывают, что сила игры GreKo от использования найденных параметров практически не изменилась, а в ряде случаев даже снизилась. Почему так произошло? Одна из очевидных причин - уже упоминавшаяся тесная связь поиска и оценки позиции. В поиске движка заложен целый ряд эвристик для отсечения неперспективных ветвей, и критерии этих отсечений (пороговые значения) тесно завязаны на статическую оценку. Меняя стоимости фигур, мы резко сдвигаем масштаб величин - форма дерева поиска меняется, требуется новая балансировка констант для всех эвристик. Это достаточно трудоёмкая задача.
Эксперимент с партиями людей
Попробуем расширить наш эксперимент, рассмотрев игры не только компьютеров, но и людей. В качестве массива данных для обучения возьмём партии двух выдающихся современных гроссмейстеров - чемпиона мира Магнуса Карлсена и экс-чемпиона Ананда Вишванатана , а также представителя романтических шахмат XIX столетия Адольфа Андерсена .
Ананд и Карлсен соперничают за мировую корону
В таблице ниже представлены результаты решения регрессионной задачи для партий этих шахматистов.
Легко заметить, что «человеческие» значения стоимости фигур оказались вовсе не такими, каким учат начинающих в учебниках. В случае Карлсена и Ананда бросается в глаза меньший масштаб шкалы - ферзь стоит чуть больше 7.5 пешек, соответственно сжался весь диапазон для других фигур. Слон по-прежнему чуть дороже коня, но и тот, и другой не дотягивают до традиционных трёх пешек. Две ладьи оказываются слабее ферзя, и т.д.
Надо сказать, что похожая картина наблюдается не только у Виши и Магнуса, но и для большинства гроссмейстеров, партии которых удалось протестировать. Причём какой-то зависимости от стиля не выяснилось. Значения смещены от классических в одну и ту же сторону и у позиционных мастеров вроде Михаила Ботвинника и Анатолия Карпова, и у атакующих шахматистов - Михаила Таля, Юдит Полгар…
Одним из немногих исключений стал Адольф Андерсен - лучший европейский игрок середины XIX века, автор знаменитой «вечнозелёной партии» . Вот для него значения стоимости фигур оказались очень близки к тем, которые используют компьютерные программы. Напрашиваются самые разнообразные фантастические гипотезы, вроде тайного читерства немецкого маэстро через портал во времени… (Шутка, конечно. Адольф Андерсен был крайне порядочным человеком, и никогда бы себе такого не позволил.)
Адольф Андерсен (1818-1879),
человек-компьютер
Почему наблюдается такой эффект со сжатием диапазона стоимости фигур? Конечно, не стоит забывать о крайней ограниченности нашей модели - учёт дополнительных позиционных факторов мог бы внести существенные коррективы. Но, возможно, дело в слабой технике реализации человеком материального перевеса - относительно современных шахматных программ, конечно. Проще говоря, человеку тяжело безошибочно играть ферзём, потому что у того слишком много возможностей. Вспоминается хрестоматийный анекдот о Ласкере (в других вариантах - Капабланке / Алехине / Тале), якобы игравшем с форой со случайным попутчиком в поезде. Кульминационной фразой было: «Ферзь только мешает!»
Заключение
Мы рассмотрели один из аспектов оценочной функции шахматных программ - стоимость материала. Убедились, что эта часть статической оценки в модели Шеннона имеет вполне «физический» смысл - она гладким образом (через логистическую функцию) связана с вероятностью исхода партии. Затем рассмотрели несколько распространённых комбинаций весов фигур, и оценили порядок их влияния на силу игры программы.С помощью аппарата регрессии на партиях различных шахматистов, как живых так и компьютерных, мы определили оптимальные стоимости фигур в предположении чисто материальной оценочной функции. Обнаружили интересный эффект меньшей стоимости материала для людей по сравнению с машинами, и «заподозрили в читерстве» одного из шахматных классиков. Попробовали применить найденные значения в реальном движке и… не добились особого успеха.
Куда двигаться дальше? Для более точной оценки позиции можно добавлять в модель новые шахматные знания - то есть увеличивать размерность векторов x и th . Даже оставаясь в области только материальных критериев (без учёта полей, занимаемых фигурами на доске), можно добавить целый ряд релевантных признаков: два слона, пара из ферзя и коня, пара из ладьи и слона, разноцвет, последняя пешка в эндшпиле… Шахматистам хорошо известно, как ценность фигур может зависеть от их сочетания или стадии партии. В шахматных программах соответствующие веса (бонусы или штрафы) могут достигать десятых долей пешки и более.
Один из возможных путей (наряду с увеличением размера выборки) - использовать для обучения партии, сыгранные предыдущей версией той же самой программы. В таком случае есть надежда на б?льшую согласованность одних признаков оценки с другими. Можно также в качестве функции стоимости использовать не успех предсказания исхода партии (которая может закончиться через несколько десятков ходов после рассматриваемой позиции), а корреляцию статической оценки с динамической - т.е. с результатом альфа-бета поиска на определённую глубину.
Однако, как уже было отмечено выше, для непосредственного усиления игры программы полученные результаты могут оказаться непригодными. Часто случается так: после обучения на сериях тестов программа начинает лучше решать тесты (в нашем случае - предсказывать результаты партий), но не лучше играть ! В настоящее время в шахматном программировании мейнстримом стало интенсивное тестирование исключительно в практической игре. Новые версии топ-движков перед выпуском тестируются на десятках и сотнях тысяч партий со сверхкороткими контролями времени…
В любом случае, я планирую провести ещё ряд экспериментов по статистическому анализу шахматных партий. Если данная тема представляет интерес для аудитории Хабра, при получении каких-либо нетривиальных результатов статья может получить продолжение.
В ходе исследований ни одна шахматная фигура не пострадала.
Библиография
Адельсон-Вельский, Г.М.; Арлазаров, В.Л.; Битман, А.Р. и др. - Машина играет в шахматы. М.: Наука, 1983Книга авторов советской программы «Каисса», подробно описывающая как общие алгоритмические основы шахматных программ, так и конкретные детали реализации оценочной функции и поиска «Каиссы».
Корнилов Е. - Программирование шахмат и других логических игр.
СПб.: БХВ-Петербург, 2005
Более современная и «практическая» книга, содержит большое количество примеров кода.
Feng-hsiung Hsu - Behind Deep Blue.
Princeton University Press, 2002
Книга одного из создателей шахматной машины Deep Blue, в подробностях рассказывающая об истории её создания и внутреннем устройстве. В приложении приведены тексты всех шахматных партий, сыгранных Deep Blue в официальных соревнованиях.
Ссылки
Chessprogramming Wiki - обширная коллекция материалов по всем теоретическим и практическим аспектам шахматного программирования.Machine Learning in Games - сайт, посвящённый машинному обучению в играх. Содержит большое количество научных статей по исследованиям в области шахмат, шашек, го, реверси, нардов и т.д.
Kaissa - страница, посвящённая «Каиссе». Детально представлены коэффициенты её оценочной функции.
Stockfish - сильнейшая на сегодня программа, с открытым исходным кодом.
A comparison of Rybka 1.0 beta and Fruit 2.1
Детальное сравнение внутреннего устройства двух популярных шахматных программ.
GreKo - шахматная программа автора статьи.
Была использована в качестве одного из источников тестовых компьютерных партий. Также на основе её генератора ходов и парсера PGN-нотации была изготовлена утилита для анализа экспериментальных данных.
pgnlearn - код утилиты и примеры файлов с партиями на github.
Теги:
- шахматы
- регрессионный анализ
- машинное обучение
Шахматная доска и фигуры
Шахматная партия ведётся двумя противниками1 на 1. Один игрок руководит белыми фигурами, другой - чёрными. Игра происходит на квадратной доске, каждая сторона которой состоит из 8 клеток, или полей. Соответственно, всего клеток 8х8=64. Для удобства различия границ полей, они разукрашены попеременно в светлые и тёмные цвета. Светлые для простоты называются белыми полями, а тёмные - чёрными. В нижнем левом углу доски всегда чёрное поле:
Вертикальные столбцы полей обозначаются латинскими буквами от a до h. А горизонтальные ряды - цифрами от 1 до 8. Соответственно, каждое поле доски можно обозначить буквой вертикали и цифрой горизонтали, на пересечении которых оно находится. Например, b3, d5, f2, h6 итд. Помимо вертикалей и горизонталей выделяют и диагонали - линии полей под углом 45 градусов. Чтобы назвать диагональ, говорят начальное и конечное поле. Например, диагональ a1-h8, диагональ h3-c8 итд.
У каждого игрока имеется по 8 фигур (король, ферзь, две ладьи, два слона, два коня) и 8 пешек:
Первоначальная расстановка фигур на доске, или т.н. начальная позиция:
Ходы фигур и взятия.
Партия состоит из перемещений фигур по доске, или ходов. Совершаются ходы по очереди. Первый ход в партии делают белые. Ход может состоять из взятия фигуры соперника кроме короля. При этом она убирается с доски, а фигура, которая совершила взятие, ставится на место побитой фигуры. Рассмотрим как ходит каждая из фигур.
Король
Король может пойти на одну любую соседнюю от себя клетку по вертикали, горизонтали и диагонали.
Ферзь
Ферзь ходит на любое количество полей по вертикали, горизонтали и диагонали.
Ладья
Ладья ходит по вертикали и горизонтали.
Слон
Слон ходит только по диагонали.
Очевидно, что слон, стоящий на белом поле, никаким образом не может попасть на чёрное, сколько бы и каких ходов он не сделал. И наоборот. Посмотрев на начальную позицию, вы увидите, что у каждой стороны один слон ходит по белым, другой - по чёрным полям. Соответственно, один слон называется белопольным, другой - чернопольным.
Конь
У этой фигуры необычный ход. Конь ходит буквой "Г". Точнее на поле, находящееся "на острие" этой воображаемой буквы: две клетки по вертикали или горизонтали плюс одна клетка вбок. Посмотрите на схеме и тогда всё станет понятно:
Фигуры не могут "перепрыгивать" другие фигуры, свои или чужие. Конь может. Например, на данной диаграмме даже если на полях c4, c3, d3 находятся какие-то фигуры или пешки, конь всё равно может пойти на b3 или с2 (Если конечно b3 и c2 не заняты собственными фигурами. Если чужими, то их можно взять).
Пешка
Пешка может ходить только на одно поле вперёд. Назад пешки не ходят. В начальной позиции имеется выбор: пойти на 1 или 2 поля вперёд.
Особенные ходы
Рокировка
Рокировка - это одновременный ход королём и ладьёй. Он возможен, если обе фигуры стоят на начальной позиции. Король ходит на два поля по направлению к ладье. Ладья занимает поле, которое "перепрыгнул" король. В зависимости от того, в какую сторону сделана рокировка, она может быть короткой или длинной. На диаграмме для примера изображена конечная позиция короля и ладьи при длинной рокировке белых и короткой рокировке чёрных:
Рокировка невозможна в следующих случаях:
1) Король или ладья, участвующая в партии, уже ходили в партии
2) Король находится под шахом (см. ниже)
3) Король после рокировки попадает под шах
4) Между королём и ладьёй, участвующей в рокировке находится своя или чужая фигура
5) Король (но не ладья) переходит поле, атакованное фигурой соперника
Рокировка - самый необычный ход в шахматах. Новички часто путаются в том, когда рокировка возможна, а когда нет. Для лучшего запоминания приведём наглядный пример:
Предположим, что ни белый, ни чёрный король, а также ни одна из ладей ещё не ходили в партии. Тогда белые могут рокироваться в короткую сторону. В длинную они рокироваться не могут, так как после завершения хода белый король окажется на с1 под нападением чёрного ферзя g5. Чёрные не могут рокироваться в короткую сторону, так как в этом случае чёрный король перешёл бы поле f8, которое контролируется белым ферзём а3. В длинную сторону чёрные могут сделать рокировку. Обратите внимание: тот факт, что ладья а8 под боем слона g2, а поле b8 под боем слона g3, никак рокировке не мешает.
Взятие на проходе
Если пешка, сделав из начальной позиции ход на 2 поля, становится рядом с пешкой противника, то она может взята "на проходе", так как прошла поле, находящееся под ударом этой пешки.
Предположим, в позиции на диаграмме белые делают ход пешкой с с2 на с4. В этом случае чёрные при желании могут взять пешку на проходе. При этом чёрная пешка переместится на поле с3, а белая пешка исчезнет с доски.
Право на такое взятие можно осуществить только немедленно в ответ на двойной ход пешки. В дальнейшем это право теряется.
Превращение пешки
Если пешка ступает на последнюю горизонталь (для белых - на восьмую, для чёрных - на первую), то она должна быть превращена в одну из фигур своего цвета: ферзя, ладью, слона или коня. Выбор фигуры не зависит от того, какие фигуры есть в данный момент на доске. Пешка убирается с доски и заменяется на новую фигуру на том же поле.
Цель игры и возможные варианты окончания партии
Главная фигура в шахматах - король. Им по правилам нельзя ходить на битое соперником поле. Нападение на короля называется шахом . При шахе сторона, которой он был объявлен, обязана защитить короля. Например, переместить его на другое поле (не находящееся под обстрелом фигур противника), или уничтожить неприятельскую фигуру, которая даёт шах, или поставить свою фигуру на линию между атакующей фигурой и королём. Если ни один из способов невозможен, значит на доске мат , и партия немедленно заканчивается победой той стороны, которая его объявила. Мат подразумевает, что на следующем ходу король противника был бы неизбежно взят. Таким образом, конечная цель игры - объявить мат королю соперника.
Вот несколько примеров, в которых белые объявили мат.
Шахматы — настольная логическая игра для двух человек со специальными фигурами и 64-клеточным полем. Шахматы сочетающая в себе элементы искусства (в части шахматной композиции), науки и спорта. Как вид спорта, шахматы имеют иерархию званий, развитую систему регулярных турниров, национальные и международные лиги.
Международная шахматная федерация (ФИДЕ, фр. Federation Internationale des Echecs, FIDE) — международная спортивная организация, которая занимается популяризацией шахмат, а также организацией международных соревнований и турниров. Объединяет в себе национальные шахматные федерации.
История возникновения и развития шахмат
История шахмат насчитывает более полутора тысяч лет. Шахматы придумали в Индии в V-VI веке до нашей эры. Не позднее VI века в Индии появилась игра - чатуранга, которая имела узнаваемый шахматный вид. В отличие от шахмат в нее одновременно играли 4 игрока, а ходы зависели от бросков игральных костей. Для выигрыша в партии нужно было уничтожить все фигуры оппонентов.
Распространившись из Индии в соседние страны, чатуранга претерпела ряд изменений. На востоке она стала носить название - шатрандж, в Китае - сянци, в Тайланде - макрук. В IX—X веке игра попала в Европу, где были составлены «классические» правила игры. Окончательно правила сформировались в XIX веке.
В 1886 году был проведен первый чемпионат мира по шахматам.
Шахматные фигуры
Пешка ? — ходит по вертикали на одно поле вперёд. Если ход сопровождается взятием фигуры соперника, то пешка имеет право ходить по диагонали на одно поле вперёд-вправо или вперёд-влево.
Конь ? — ходит на клетку, находящуюся на расстоянии 2 по вертикали и 1 по горизонтали или 1 по вертикали и 2 по горизонтали от текущего положения.
Слон ? — ходит на любую клетку по диагонали.
Ладья ? — ходит на любую клетку по вертикали или горизонтали.
Ферзь ? — ходит на любую клетку по вертикали, горизонтали или диагонали.
Название фигур в шахматах
Король ? — ходит на 1 клетку по вертикали, горизонтали или диагонали.
Перед началом партии каждый из игроков имеет на шахматном поле:
- пешка - 8 шт.;
- ладья - 2 шт.;
- конь - 2 шт.;
- слон - 2 шт.;
- ферзь - 1 шт.;
- король - 1 шт.
Правила шахмат
Ходы в шахматах делают поочередно, причем, первый ход делает игрок с белыми фигурами. Право играть белыми фигурами определяет жребий.
Ход считается сделанным в следующих случаях:
- рука игрока опустила фигуру, после ее передвижения на незанятое поле;
- при взятии фигуры оппонента, после замены фигуры оппонента на свою;
- при рокировке;
- при превращении пешки, в случае когда пешка снята с доски и игрок убрал руку от новой фигуры, поставленной на поле.
Кроме обычных ходов, в шахматах существуют 2 специальных хода:
- Рокировка - одновременная смена положения короля и ладьи одного цвета, при условии, что они не двигались с начала игры. При рокировке король сдвигается на 2 клетки по направлению к ладье, а ладья ставится на поле между начальной и конечной позицией короля. Рокировка считается ходом короля.
- Взятие на проходе - специальный ход пешки, при котором она берет пешку соперника, которая была перемещена сразу на два поля. Но под боем оказывается не то поле, на котором остановилась вторая пешка, а то, которое было пересечено ею.
Прежде чем поправить одну или несколько фигур на поле, игрок должен предупредить соперника об этом. В противном случае после прикосновения к фигуре необходимо будет выполнить ход до конца.
Выигрыш в шахматах
Шах - ситуация, когда король одного из игроков находится под ударом фигуры соперника. Для того чтобы отбить шах необходимо выполнить одно из следующих действий:
- отойти королем на любое поле, не находящееся под ударом фигур соперника;
- взять фигуру, которая угрожает королю;
- поставить другую свою фигуру под удар.
Мат — ситуация, когда король находится под шахом, но не может его избежать.
Партия считается выигранной если:
- один из игроков дал мат королю соперника;
- один из игроков признал поражение;
- у одного из игроков закончилось время, отведенное на ходы;
- техническая победа.
Ничья в шахматах
Пат - ситуация, когда игрок с правом хода не может им воспользоваться, так как все его фигуры лишены возможности сделать ход. Король при этом не должен находиться под шахом.
Кроме этого, ничья фиксируется в следующих случаях:
- никакая последовательность ходов не приводит к мату;
- троекратное повторение позиций (не обязательно в течение трёх ходов подряд) или пятикратное повторение одной и той же позиции в течение пяти последовательных ходов;
- оба игрока сделали 50 ходов без взятия и без хода пешкой (правило 50 ходов);
- обоюдное согласие на ничью;
- один из игроков просрочил время.
Контроль времени в шахматах
Все официальные партии в шахматах проводятся с контролем времени с помощью специальных шахматных часов. Игрок, сделавший ход, нажимает на часах кнопку, которая останавливает его часы и запускает часы соперника.
Время игрока считается истекшим, если флажок на его часах упал. Это справедливо кроме следующих ситуаций:
- на доске стоит мат;
- на доске ситуация, которая приводит к ничьей;
- флажки упали у обоих игроков;
- у оппонента нет возможности поставить мат.
Шахматные соревнования
Все соревнования по шахматам проводятся по одной из четырех систем проведения турниров:
- швейцарская система;
- круговая система;
- нокаут-система;
- схевенингенская система.
К популярным международным шахматным турнирам относятся:
- чемпионат мира по шахматам;
- чемпионат Европы по шахматам;
- кубок мира;
- национальные чемпионаты;
- FIDE Grand Prix Series.
Шахматные структуры
Профессиональная шахматная ассоциация (ПША, англ. Professional Chess Association, PCA) — организация, которая была создана по инициативе Гарри Каспарова и Найджела Шорта, которые приняли решение провести матч на первенство мира без участия ФИДЕ.
Международная федерация шахматной игры по переписке (англ. ICCF — International Correspondence Chess Federation).
Мы постарались максимально полно охватить тему, поэтому данную информацию можно смело использовать при подготовке докладов по физкультуре и рефератов на тему «Шахматы».
Теги: игровые виды спорталетние виды спорта
Программирование шахмат и других логических игр
Серия: Профессиональное программирование
Жанр: Программирование
Издатель: «БХВ-Петербург»
Год выпуска: 2005
ISBN книги: 5-94157-497-5
Тип: Книга
Рассмотрено программирование логических игр методом перебора на примере шахмат. Описываются стандартные методики создания шахматной программы, а также приемы, позволяющие разрабатывать более эффективные компьютерные логические игры.
Шахматные фигуры
Представлены примеры использования рассмотренных методов при программировании других логических игр («крестики-нолики», «уголки», шашки). Приведено большое количество исходных кодов программ на языках С++ и Pascal и полезных практических советов. Для программистов. (Компакт-диск прилагается только к печатному изданию.)
Скачать Программирование шахмат и других логических игр, Евгений Корнилов
Скачать fb2Скачать epubСкачать txt
Стратегия игры в шахматы
Три основных принципа шахматной партии.
1. Вести анализ и оценку позиции.
2. Составлять план действий.
3. Изыскивать комбинации и непрерывно вести расчет вариантов.
Для повышения мастерства нужно постоянно развивать и укреплять свои способности: решать шахматные задачи, анализировать чужие партии.
1. Главное — вывести с первоначальных мест все свои фигуры и расставить их на лучшие позиции, одновременно препятствуя сделать то же противнику. Следить за гармоничностью расстановки фигур: не делать ходы одной и той же фигурой; не делать много ходов пешками, задерживая вывод фигур; позаботиться о безопасности короля. Если противник отстал в развитии уже в начале партии, необходимо принять срочные меры, чтобы он и дальше не смог бы закончить вывод своих фигур с первоначальных мест, рокировать короля и т.д. Для этого надо связать противника необходимостью немедленной конкретной борьбы на одном из участков фронта. Вынужденный бросить туда свои силы, он не успеет закончить развитие фигур и не осуществит рокировку.
2. Проблему центра решать исходя из анализа. Если оценка позиции говорит о необходимости занимать центр пешками, надо занимать, если же пешкам грозит опасность стать слабыми и незащищенными, нужно все тщательно взвесить и, вероятно, предпочесть фигурное давление на центр.
3. Следить за пешечным построением.
Сколько фигур в шахматах?
Пешки назад не ходят, каждое ослабление одной пешки или всего пешечного расположения — это уже до конца партии.
4. Развивая фигуры, борясь за центр, создавая намеченные заранее пешечные построения, ни на минуту нельзя забывать общей идеи варианта. Любой дебютный вариант преследует цель выполнить одну или несколько задач. Наметив задачу, ее надо проводить, руководствуясь ею в проведении планов, подчиняя ей движение пешек и фигур.
Правила Стейница
1. Право атаковать в шахматах имеет сторона, владеющая преимуществом, и должна атаковать, иначе рискует растерять свое преимущество. Атака ведется на самый слабый пункт в позиции неприятеля.
2. Защищающийся должен отражать удары неприятеля, следовать его мысли, угадывать его намерения, но в то же время не упускать случая провести встречный удар, перейти в нужный момент в контратаку. Защита — временное подчинение воле противника. Защищаться труднее, чем атаковать.
3. В равных позициях стороны маневрируют, стремясь изменить равновесие в свою пользу. При правильной игре сторон, равная позиция вновь приводит к равным позициям.
4. Преимущество может состоять из одного большого неделимого преимущества и из ряда мелких преимуществ. Задача ведущего позиционный бой — накапливать мелкие преимущества, стремясь превратить временные преимущества в постоянные.
Постоянные преимущества и недостатки : материальный перевес, плохая позиция короля, наличие проходной пешки, слабые пешки, слабые поля, слабость периферии (для белопольного или чернопольного слона), пешечные островки, сильный пешечный центр, преимущество двух слонов, владение открытой вертикалью, владение открытой диагональю, владение горизонталью.
Временные преимущества и недостатки : неудачная позиция одной фигуры, дисгармония в расположении фигур, перевес в развитии, фигурное давление в центре, перевес в пространстве.
Правила при игре с разносторонними рокировками
1. Учесть, что противник почти обязательно бросится штурмовать вашу позицию на другом конце доски. Вопрос стоит: кто кого? Нужно твердо помнить, что успеха достигнет тот, кто первым захватит инициативу и заставит противника перейти к обороне, после чего все его активные действия на другом конце доски станут бессмысленными.
2. Предусмотреть, чтобы противник не опередил вас на другом фланге, не вынудил перейти к обороне. Всегда помнить, в случае потери инициативы, ваш штурм лишь ослабит вашу собственную позицию.
3. До рокировки подготовить штурм двумя-тремя пешечными ходами на той стороне доски, где вы задумали вести наступление. Такие предварительные действия окончательно не выясняют еще вашего плана и ведут к выигрышу драгоценного времени.
4. Во время штурма внимательно следить за флангом, где противник штурмует позицию вашего короля. В случае необходимости, сделать там 1-2 оборонительных хода, чтобы задержать продвижение вражеской армии.
5. Сделать полный расчет пешечного штурма, так как его проведение требует 5-7 ходов для вскрытия вертикалей.
При игре с разносторонними рокировками, путей к отступлению нет — точность расчета становится решающим фактором.
Перед рокировкой следует учесть :
1. Положение собственных штурмующих пешек: как далеко они продвинуты, сдвоены они или изолированы, могут ли без больших потерь двинуться с места, не ослабит ли их продвижение позиции ваших фигур.
2. Положение пешек противника. Всякое выдвинутое положение вражеской пешки дает возможность поскорее за нее «зацепиться» и тем самым вскрыть вертикаль. Поэтому обороняющийся обязан избегать продвижения своих пешек навстречу штурмующим отрядам врага, а атакующий — стараться вынудить такое продвижение.
3. Позицию собственных фигур и фигур противника на пути продвигающихся пешек. Чужие фигуры дают лишние темпы — нападая на фигуры пешками, вы заставляете их ходить; свои отнимают время, затраченное на отвод мешающих фигур. Поэтому перед рокировкой в разные стороны, вы обязаны отвести с пути своих пешек свои же фигуры.
4. Расположение собственных фигур, способность их поддержать штурм, ворваться в образующийся пролом в позиции. Если ваши фигуры расположены вдалеке от того места, где вы штурмуете, то при прорыве не будете иметь достаточно сил для того, чтобы использовать эту выгоду. Перед началом штурма необходимо тщательно обдумать вопрос о возможности подведения резервов к важнейшему участку доски.
Правила при игре с односторонними рокировками
1. Фигурная атака — нападающий концентрирует на королевском фланге наибольшее число своих фигур, подводя в случае нужды резервы, затем добирается до вражеского короля, используя слабые пункты в его резиденции, или захватывает открытые вертикали и диагонали.
2. Пешечный штурм — только, если центр надежно защищен (стабилизирован) и противник полностью лишен возможности провести там контрудар, полезно бывает подключить к атаке пешки.
План игры
План игры в шахматах должен быть всегда. План должен быть максимально приближен к требованиям позиции, исходить из оценки позиции. Прежде чем составлять план, надо решить вопрос, какой план у соперника. В комбинационно-тактических позициях следует заняться расчетом вариантов. В маневренно-стратегических позициях — формулированием общих планов и соображений.
Не перегружать себя непосильными планами. Следует изучать типичные планы. Лучше плохой план, чем вообще играть без плана.
При поиске лучшего хода следует выяснить: выполняет ли этот ход намеченную вами цель, не вносит ли диссонанс в расположение всех фигур, не может ли неприятель использовать слабые стороны этого хода для нанесения опасного встречного контрудара.
Прежде чем атаковать, надо хорошо, удачно расставить свои фигуры, ослабить поля противника.
Перед одинокой пешкой противника удобно ставить коня, слона.
При сильном пешечном центре, надо при возможности продвигать пешки, или атаковать на флангах. Если есть проходная, защищенная пешка и ее нельзя двигать, то надо начинать атаку на другом фланге, отвлечь силы противника от нее.
Никогда не следует делать пешечные ходы на том фланге, где вы слабее.
При клинообразном пешечном построении, надо его подорвать пешками же.
При решении вопроса о правильности жертвы надо учитывать :
1. Корректна ли жертва.
2. Попытаться подтвердить сделанный вывод расчетом главных вариантов, получающихся после жертвы.
3. Перед тем, как сделать ход, необходимо оценить другие, более спокойные пути игры. Может быть они короче и вернее ведут к победе.
4. Характер и стиль партнеров. Кому по стилю выгодна жертва: вам или ему? Если он любит комбинационную игру, а вы — спокойную, стоит воздержаться от жертвы. Если вам достаточно ничьи, зачем рисковать.
Защита
1. Не увлекаться атакой. Уметь вовремя понять, что пришла пора обороняться. Иметь чувство опасности.
2. Обороняясь, создавать максимальное число заслонов на пути вражеских фигур, рассчитывая, что это замедлит темп их наступления и застопорит всю атаку. Затем перехватить инициативу.
2. Обороняясь, стремиться к разменам фигур (особенно активных фигур противника), перевести игру в эндшпиль (ладейный или с разноцветными слонами).
3. При запертом центре, кони сильнее слонов.
4. Если у противника один слон, надо попытаться заставить его передвинуть пешки на клетки цвета слона.
Лучший способ обороны — контратака. Главное — найти способ перейти в контратаку и правильно выбрать момент.
6. Лучшее возражение на фланговую атаку — контрудар. Наступление на одном фланге часто без труда отражается противником, особенно если у атакующего нет необходимых пунктов для вторжения фигур. Поэтому надо затеять игру на другом конце доски, отвлекая фигуры между флангами.
Эндшпиль
1. Не спешить: а) выигрываешь время, б) выяснить позицию, повторять ходы, в) усложнять, нагнетать напряжение в позиции с соперником, которому это не нравится.
2. Иметь план, схему конечной позиции.
3. Короля — в центр. Король должен быть активным.
4. Правильно обменять легкие фигуры, выяснив слон дороже или дешевле коня будет в конце игры.
5. При хорошем взаимодействии фигур, при возможности их легко перебрасывать с фланга на фланг, целесообразно вскрывать игру на двух флангах и атаковать одновременно.
6. В ладейных окончаниях, инициатива намного весомее, чем материальное преимущество.
7. Открытые линии имеют ценность в тех случаях, когда на них есть объекты для атаки или когда линия служит коммуникацией для переброски фигур (обычно ладей) к главному участку боя.
Правила обращения с шахматными часами
Наше время — расчет вариантов.
Его время — решение общих проблем, анализ и оценка позиции, составление плана игры.
Шахматы – одна из давних игр мира, истоки которой уходят в древнюю Индию. Имеющая четкие правила игра довольно сложная, требующая аналитических способностей и математического типа ума. Учиться играть в шахматы следует с расстановки фигур.
Как ходят фигуры в шахматах
Как расставить шахматы правильно?
Расставляем фигуры
Начинаем с пешек, которых в шахматный комплект входит по восемь фигур каждого цвета. Выстраиваем пешки по второй линии нашей стороны доски от клетки А7 (А2) до Н7 (Н2). На крайние клетки ближайшей линии А8 (А1) и Н8 (Н2) ставим ладьи. Далее свое место займут кони. Каждого из них располагаем на второй от края клетке ближайшей линии, иными словами, на клетках В8 (В1) и G8 (G1). После коней ищем место для фигуры под названием офицер или тура. Эти фигуры занимают позиции возле королевы и короля, то есть на клетках С8 (С1) и F8(F1).
Король и королева
Их место – в центре расположения, на клетках D8 (D1) и E8 (E1). Королева (ферзь) ставится на клетку, соответствующую цвету фигуры. Так место белого ферзя – позиция Е8 или D1, место черного – клетка Е1 или D8. Короля отличает от ферзя роскошная королевская корона.
Главная / Правила шахмат
Правила шахмат.
Фигуры в шахматах. Шахматные фигуры
Описание шахмат
Шахматы — очень старая игра. Предположительно, шахматы возникли в Индии в четвертом или пятом веке, но неизвестно, кто их изобрел. Шахматы представляют собой интеллектуальное состязание между двумя игроками. Это очень логическая игра, где удача играет маленькую роль.
В игре в шахматы задействовано две стороны, черные и белые, за каждую из которых выступает один игрок. Шахматная доска состоит из 64 клеток, светлых и темных, чередующихся по цвету. Доска поделена на восемь столбцов и восемь рядов. Столбцы имеют буквенное обозначение (слева направо: a, b, c, d, e, f, g и h), ряды — числовое (сверху вниз: 1, 2, 3, 4, 5, 6, 7 и 8). Таким образом, каждая клетка имеет обозначение, исходя из того, в каком столбце и каком ряду она находится. Сначала в записи клетки следует столбец, затем — ряд, например, клетка в левом нижнем углу имеет обозначение a1 (столбец a, ряд 1).
Доска всегда ставится таким образом, чтобы ближняя угловая клетка справа от игрока была светлой. Каждая клетка может быть либо пустой, либо ее может занимать какая-либо фигура. Изначальная позиция шахмат состоит из 16 белых фигур и 16 черных фигур, расположенных показанным ниже образом.
Общие правила шахмат
Игроки ходят по очереди.
Белые всегда ходят первыми. Белые выбирают фигуру, которой будут ходить, и ставят ее на другую клетку, исходя из правил передвижения этой фигуры. За раз ходят всегда одной фигурой, исключение из этого правила — рокировка , когда задействуются сразу две фигуры (король и ладья). Клетка, на которую ступает фигура, может быть либо пустой, либо ее может занимать фигура противоположной стороны. В последнем случае, вражеская фигура захватывается . Иначе говорят, что происходит взятие фигуры. Захваченная фигура убирается с доски, и больше не принимает участия в игре. (Взятие не является обязательным действием.)
Более подробно взятие и рокировка рассматриваются в следующих разделах:
Фигуры в шахматах
На нижнем ряду на рисунке сверху, где расположены фигуры белых, находятся (слева направо): ладья (называемая также тура? или башня ), конь , слон , ферзь (называемой также королевой ), король , еще один слон, еще один конь, и еще одна ладья. Во втором ряду белых фигур расположены восемь пешек . Обратите внимание, что ферзь в начальном положении всегда занимает клетку того же цвета, как и сам ферзь (т.е. ферзь белых ставится на клетку светлого цвета, а ферзь черных — на клетку темного цвета).
Каждая шахматная фигура имеет определенную ценность (как правило, их измеряют в пешках, т.е. каждая фигура заменяет собой определенное количество пешек). Ферзь стоит 9 очков, поэтому он гораздо ценнее, чем пешка, чья стоимость — всего 1 очко.
В таблице ниже перечислены все шахматные фигуры с их изображениями, названиями, символами, и ценностью. Король в шахматах не оценивается, ведь это самая главная фигура, и если ему объявлен мат (см. ниже), игра проиграна. Хотя в некоторых источниках ему присваивают 200 очков.
Каждая фигура в шахматах двигается по-своему. Подробнее все шахматные фигуры описаны в следующих разделах:
Цель игры в шахматах
Цель игры – поставить мат вражескому королю. Мат предваряет шах. Если играть за белых, то королю черных ставится шах в том случае, если белые могут его захватить (другими словами, если он находится под атакой фигуры белых). Чтобы белые не могли захватить черного короля на следующем ходу, черные должны сделать ход, который убирает короля из-под шаха.
Если черные не могут уйти из-под шаха, тогда объявляется, что черному королю поставлен мат, и белые выигрывают игру. Один из способов описать мат: мат – это положение, в котором королю поставлен шах, и игрок не может сделать ни одного хода, чтобы уйти из-под шаха. Еще один вариант развития событий – это когда черным НЕ поставлен шах, но они не могут сделать ни одного хода (в силу угрозы оказаться под шахом и / или в силу недоступности клеток). Такое положение называется пат . Когда происходит пат, игра завершается вничью.
Более подробно варианты окончания шахматной партии описаны в следующих разделах:
Другие правила шахмат
- Пешка, достигнув последнего поля, может быть повышена до ферзя, ладьи, слона или коня, в тот же ход — этот процесс называется превращением пешки. Результат превращения происходит сразу же. Поэтому, если пешка превращается в ферзя, ферзь, если ситуация позволяет, сразу ставит шах или даже мат вражескому королю.
- Каждый ход должен совершаться одной рукой.
- Фигура, за которую игрок уже взялся, должна быть обязательно передвинута, только если ее передвижение не ставит своего короля под шах. Это правило называется «взялся – ходи».
- Если затронута вражеская фигура, то она должна быть взята, если это возможно. Если это не возможно, то игра продолжается, как будто фигуру и не затрагивали.
- Игрок может поправить фигуру на доске во время своего хода, сказав при этом «поправляю».
- Во время рокировки сначала передвигается король, и затем ладья.
- Когда используются часы, кнопка на них должна нажиматься той же рукой, которая двигала фигуру во время хода.
- Игра должна проводиться с уважением к оппоненту. Игрок не должен отвлекать или мешать своему оппоненту.
- Игрок может добровольно сдаться, в случае чего он проигрывает, а его противник выигрывает. Также игрок может предложить ничью — если противник принимает предложение, объявляется ничья, иначе игра продолжается.
- Правило 50 ходов: если было совершено 50 последовательных ходов, как белыми, так и черными, и при этом не было ни одного взятия, и не было ни одного хода пешкой, можно потребовать ничью.
Существуют также и некоторые другие правила шахмат. Полный список правил смотрите на официальном сайте FIDE.
