Как сделать проект по шахматам

Добавил пользователь Алексей Ф.
Обновлено: 04.10.2024

Содержание
1. Введение
2. Цели и задачи
3. Основная часть
Шахматы - спорт, наука, искусство или игра?
3.1. краткая история развития шахмат
3.2. гимнастика ума
3.3. наука и шахматы
3.4. искусство мыслить
3.5. королевская игра
4. Результаты опроса

1. Введение
Почему я решил выбрать темой своего исследования шахматы?
Видимо потому, что эта игра - одно из моих любимых занятий. И мне бы хотелось
разобраться, что же такое шахматы - спорт, наука, искусство или игра?
Одни считают, что шахматы - это спорт, так как это соревнование, состязание и
противоборство противников.
Другие считают шахматы наукой, ведь в шахматах есть математические задачи,
есть своя методика игры, теория, стратегия и тактика.
Третьи полагают, что шахматы - это искусство. Как и в искусстве, играя
шахматную партию, получаешь удовольствие, наблюдая за игрой какого-нибудь
выдающегося профессионала.
Большинство же любителей шахмат считают занятие шахматами увлекательной
игрой. Вот и меня заинтересовал этот вопрос, казалось бы, простой, однако найти
ответ на него не так просто. Попробуем разобраться.

3.1 Краткая история шахмат
Что бы разобраться, чем являются шахматы, необходимо
знать историю их развития. Происхождение шахмат в
разное время приписывалось грекам, римлянам,
египтянам, евреям, персам, китайцам, индусам, арабам и
многим другим! По одной (наиболее верной) из версий,
шахматы зародились в Индии в VI веке нашей эры.
Их изобретателем стал известный в то время индийский
математик. Свое творение он предоставил на суд
Международная шахматная
всемогущего индийского раджи. Шахматы очень
федерация (ФИДЕ)
впечатлили правителя и стали популярны сначала в
Индии, а потом уже и во всем мире.
Определение: Шахматы- это настольная логическая игра
со специальными фигурами на 64 - клеточной доске для
двух соперников. Цель игры - поставить сопернику
мат (мат - ситуация в шахматах, когда король находится
под шахом, а игрок не может сделать ни одного хода,
чтобы его избежать). Игра подчиняется определённым
правилам, которые дополняются правилами ФИДЕ.

3.3. Наука и шахматы
Можно ли считать шахматы наукой? Наука – это
система знаний, исследований на основе обобщения
знаний. Обучение шахматам предполагает обучение теории
и практике. Шахматная теория - это исследования,
посвящённые различным аспектам шахматной игры.
Шахматная партия разворачивается в точном
соответствии с правилами. Игра подразделяется на 3
части: дебют (начало),миттельшпиль (середина) и
эндшпиль (окончание игры).Шахматы тесно связаны с
такой наукой, как математика. Как и в математике в
шахматах есть и теория, и практика. Формы мышления
математика и шахматиста довольно близки, и не случайно
математические способности часто сочетаются с
шахматными. Многие математики стали известными
шахматистами, например, Эмануил Ласкер, Макс Эйве,
Михаил Ботвинник. Анатолий Карпов и многие другие.

3.4. Искусство мыслить
Шахматы можно назвать искусством искусством мыслить, творчеством обеих
сторон. На шахматной доске реализуются
мысли, стратегия и тактика каждого из
соперников. Это искусство создавать
прекрасные комбинации, которые живут и
радуют поклонников игры столетиями. Многие
историки, исследователи отмечают, что
появление шахмат связано с изобразительным
искусством, так как первые шахматные фигуры
представляли собой вырезанные из слоновой
кости тончайшей художественной работы
скульптурки всадников, слонов, боевых
колесниц, пеших воинов. С ростом популярности
игры к шахматной теме обратились и художники.
Шахматы играют важную роль во многих
произведениях литературы, кинематографа и
других направлений искусства.

„Шахматы - это спорт, кровавый спорт.“ (Марсель Дунамп)
“Шахматы похожи на баскетбол. иногда приходится также долго крутиться вокруг
корзины,прежде чем забросить мяч” (Фишер)
“Шахматы - нечто большее, чем просто игра” (Х.Капабланка)
“Шахматы способствуют не только росту интелекта,они дисциплинируют ум
человека” (М.Эйве)
“Человек, играющий в шахматы, оказывается лучше подготовленным к жизненным
ситуациям” (М.Ботвинник)
“Гармония шахмат мне представляется как совокупность трех компонентовлогики,фантазии и творчества” (В.Смыслов)
“Шахматы - это прежде всего исскуство” (М.Таль)
“В шахматах я ценю прежде всего логику” (Т.Петросян)
“Секрет моих успехов-это прежде всего моя исключительная преданность
шахматному исскуству” (Фишер)
“Шахматы - это точнейшая система при помощи которой мы подвергаем серьезному
испытанию ум” (Г.Каспаров)
“Шахматы - это сила”(Фишер)

Цель проекта Популяризация шахмат среди школьников, родителей
Задачи проекта 1. Создать условия для интеллектуального развития школьников при обучении игре в шахматы
2. Формировать устойчивый интерес детей к игре в шахматы
3. Способствовать развитию логического мышления, способности к самостоятельному принятию решений
4. Совершенствовать систему математического образования в школе
5. Вовлекать родителей, социальных партнеров в образовательную деятельность
6. Развивать формы внеурочной деятельности

Оценить 531 0

Муниципальное бюджетное общеобразовательное учреждение

Полевского городского округа

Конкурс ООО "Попечительский совет ПГО"

"Шахматы – детям"

учитель начальных классов

Паспорт проекта, краткая информация о заявителе

План мероприятий по проекту на 2019-2020 учебный год

Смета на реализацию проекта

Паспорт проекта

Название проекта

Умный ферзь

Цель проекта

Популяризация шахмат среди школьников, родителей

Задачи проекта

Создать условия для интеллектуального развития школьников при обучении игре в шахматы

Формировать устойчивый интерес детей к игре в шахматы

Способствовать развитию логического мышления, способности к самостоятельному принятию решений

Совершенствовать систему математического образования в школе

Вовлекать родителей, социальных партнеров в образовательную деятельность

Развивать формы внеурочной деятельности

Актуальность проекта

Доказано, что шахматы развивают память, логическое мышление, пространственное воображение, вырабатывают усидчивость, внимательность, целеустремленность. Ребенок учится делать логические выводы – мыслить самостоятельно.

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

Игра в шахматы способна развить у детей все четыре основных типа универсальных учебных действий.

Познавательные : дети учатся разыгрывать комбинации, выстраивают стратегию, мыслят системно, на много ходов вперед.

Регулятивные : неукоснительное следование правилам и самодисциплина. Шахматы не прощают тех, кто сдается и теряет контроль: нужно постоянно быть включенными в процесс, вести партию, ни на миг не расслабляться и постоянно думать, пока партия не окончена.

Коммуникативные : шахматы – это не только молчаливая, сосредоточенная игра. Это еще и разбор партий, обсуждение вариантов, озвучивание возможных ходов и сценариев.

Личностные : развитие воли, самооценка, возможность в некоторых ситуациях проявить рыцарское благородство. К тому же игра мотивирует, позволяет сохранить интерес к обучению.

Ожидаемые результаты

Для учащихся:

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

- логическое мышление,

- пространственная ориентация на плоскости,

- коммуникативные навыки.

Повысится интерес детей к игре в шахматы.

Будет организован досуг учащихся.

Для родителей:

- создано единое образовательное пространство школы и семьи по шахматному образованию школьников;

- увеличится количество родителей, вовлеченных в совместные мероприятия по шахматной деятельности, укрепится понимание необходимости в шахматном образовании школьников.

Для педагогов:

- приобретется педагогами новый опыт работы по организации шахматной деятельности школьника;

- обновится развивающая предметно-пространственная среда в школьном учреждении;

- повысится мастерство в организации активных форм сотрудничества с семьей.

Сроки и этапы реализации проекта

Сентябрь 2019г. – май 2020 г.

1 этап -Подготовительный этап (сентябрь-ноябрь 2019 г).

- анализ содержания эффективных технологий и методик в области обучения школьников игре в шахматы;

- приобретение учебно-дидактического и наглядного материала;

- анкетирование родителей;

- планирование образовательной деятельности по обучению игре в шахматы и их популяризации.

2 этап - Основной этап (декабрь 2019 – май 2020г.г.)

- создание условий, подбор средств, методов достижения цели;

- непосредственная реализация проекта;

- организация работы через совместную и самостоятельную деятельность детей.

3 этап - Заключительный этап (май 2020 г.)

- обобщениерезультатов реализации проекта;

- определение наиболее актуальных и востребованных форм работы в последующих периодах;

- демонстрация детских достижений на шахматных турнирах.

Направления проекта

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

- интеллектуально-творческие мероприятия;

- соревнования по шахматам;

- создание информационной среды, визуализация образовательной среды

Участники проекта

Учащиеся МБОУ ПГО "Средняя общеобразовательная школа № 17"

Родители (законные представители) обучающихся

Социальные партнеры (шефствующее предприятие)

Координаторы проекта (команда проекта)

Педагогический совет (Хомякова Н.В., директор)

Методический совет (Могильникова Н.Я., заместитель директора по УВР)

Совет родителей (председатель Девяшина А.А., куратор – Костромина С.А., социальный педагог)

Совет обучающихся (председатель Крыгина Арина, учащаяся 10 класса, куратор Чешуина М.В., заместитель директора по ВР, Тисленок К.Л., педагог-организатор)

Куратор проекта

Черепанова Л.М., учитель начальных классов

Пояснительнаязаписка

Правительство Российской Федерации уделяет колоссальное внимание вопросу популяризации шахматного образования.

В связи с этим одной из ключевых задач модернизации в системе образования является поиск, апробация и интеграция в образовательный процесс дисциплин и форм работы, способствующих интеллектуальному развитию молодого поколения. Большой опыт, накопленный во многих странах, позволяет считать шахматы одним из таких учебных предметов.

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

Шахматная деятельность влияет на формирование у детей произвольных психических процессов, в игре у них развиваются произвольное внимание и произвольная память. В условиях игры дети лучше сосредотачиваются и больше запоминают. Игра в шахматы организует чувства ребенка, его нравственные качества и поведение. Обучение игре в шахматы позволяет наиболее полно использовать потенциал, заложенный в древней игре в формировании логического мышления школьников.

Актуальность проблемы обучения школьников игре в шахматы обусловлена созданием педагогических условий для формирования интеллектуальных способностей.

Ведение занятий по обучению игре в шахматы позволяет поддерживать устойчивый интерес к знаниям и сделать обучение радостным, так как предусматривается широкое использование занимательного материала, включение в занятия игровых ситуаций, чтение дидактических сказок и т.д. Стержневым моментом занятий становится деятельность самих учащихся, когда они наблюдают, сравнивают, классифицируют, группируют, делают выводы, выясняют закономерности, что способствует развитию мышления и памяти, умений сравнивать, обобщать, содействует формированию таких ценных качеств, как усидчивость, собранность, самостоятельность. Шахматная игра является действенным средством умственного развития.

Новизна проекта:

Возможность раннего обучения игре в шахматы в непринуждённой игровой форме с использованием интеграции образовательных областей основной образовательной программы школьного учреждения.

Практическая значимость проекта:

Возможность применения технологии проекта в практике школьных учреждений с целью развития познавательного интереса у младших школьников посредством обучения игре в шахматы; наличие практического материала для использования в работе с детьми.

План мероприятий по проекту на 2019 – 2020 учебный год

Курс внеурочной деятельности "Шахматы" для учащихся 1- 4 классов

Черепанова Л.М., учитель начальных классов

Мероприятия для учащихся и родителей:

Открытые занятия шахматного клуба для учащихся начальных классов в рамках интеллектуального лагеря "Совенок" (клубных дней)

Шапиро Н.А., зам.директора по УВР

Черепанова Л.М., руководитель шахматного клуба

Конкурс "Лучший шахматист"

Январь – май 2020

Чешуина М.В., зам.директора по ВР

Проект по технологии для учащихся 6 – 8 классов "Напольные шахматы"

Январь – декабрь 2020

Коробейников С.А., учитель технологии

"Шахматные пятницы" для родителей и учащихся

3 неделя месяца

Черепанова Л.М., руководитель шахматного клуба

Старт проекта "Умный ферзь"

Чешуина М.В., зам.директора по ВР

Черепанова Л.М., куратор проекта

Интеллектуально-творческая игра "Путешествие по шахматной доске"

Тисленок К.Л.. педагог-организатор

Черепанова Л.М., куратор проекта

Конкурс рисунков для учащихся 1 – 4 классов "Путешествие в шахматное королевство"

Сагадатова С.И., учитель ИЗО

Семейный онлайн-чемпионат по шахматам

Комиссарова А.А., учитель информатики

Шахматный турнир "Отцы и дети" для учащихся 1- 11 классов и родителей

Костромина С.А., куратор Совета родителей

Черепанова Л.М., куратор проекта "Умный ферзь"

Веселые старты для учащихся 1- 4 классов "На шахматной доске"

Зиннуров А.В., учитель физической культуры

Зубкова А.И., учитель физической культуры

Шахматные бои совместно с шефами для учащихся 8 – 11 классов

Черепанова Л.М. куратор проекта "Умный ферзь"

Интеллектуальная игра для учащихся 5 – 8 классов "Шах и мат"

Широкова А.Е., зам.директора по УВР

Посвящение в шахматисты

Тисленок К.Л., педагог-организатор

Конкурс сказок "Пешка и король" для учащихся 1 – 4 классов

Тисленок К.Л., педагог-организатор

Школьный чемпионат по шахматам среди учащихся 1 – 9 классов в рамках проекта "Лучший инженерный класс"

Март - апрель 2020

Комиссарова А.А., руководитель проекта "Лучший инженерный класс"

Черепанова Л.М., куратор проекта "Умный ферзь"

Семейный шахматный турнир "Мама, папа, я – шахматная семья" в рамках Дня открытых дверей для родителей

Черепанова Л.М., куратор проекта "Умный ферзь"

Тисленок К.Л., педагог-организатор

Акция для учащихся начальной школы "Ни дня без шахмат"

Спектакль театральной студии "Веселый балаганчик" для учащихся 1 - 4 классов "В тридевятом царстве, в шахматном государстве"

Чешуина М.В., руководитель студии

Конкурс художественно-прикладного творчества "Мастерская ферзя" для учащихся 1 – 7 классов

Шаяхметова Ф.З., учитель технологии

Тисленок К.Л., педагог-организатор

Конкурс комиксов "Приключения пешки" для учащихся 5 – 7 классов

Чешуина М.В., зам.директора по ВР

Блиц-турнир по шахматам, посвященный 75-летию Победы

Черепанова Л.М., куратор проекта "Умный ферзь"

Спектакль театральной студии "Веселый балаганчик" для воспитанников дошкольных образовательных организаций "В тридевятом царстве, в шахматном государстве" (МБДОУ № 51, 54)

Чешуина М.В., руководитель студии

Номинация "Лучший шахматист" на итоговом фестивале "Школьная звезда"

Чешуина М.В., зам.директора по ВР

Участие в городских шахматных турнирах

Черепанова Л.М., куратор проекта "Умный ферзь"

Создание образовательной среды

Приобретение и создание информационного стенда "В мире шахмат"

Царева Ю.А., зам.директора по АХР

Тисленок К.Л.. педагог-организатор

Создание раздела "Шахматы" на школьном сайте

Комиссарова А.А., руководитель школьного сайта

Создание шахматных уголков в учебных кабинетах

Царева Ю.А., зам.директора по АХР

Приобретение и установка компьютерной программы обучения игре в шахматы

Январь – февраль 2020

Хорькова А.В., инженер по ИТ

Царева Ю.А., зам.директора по АХР

Приобретение дидактических игр по обучению игре в шахматы

Январь – февраль 2020

Царева Ю.А., зам.директора по АХР

Создание альбома "Великие шахматисты"

Январь – май 2020

Классные руководители 3 – 8 классов

Фоторепортажи шахматных турниров

Январь – май 2020

Тисленок К.Л., педагог-организатор

Приобретение книг по обучению шахматам и о шахматах

В течение периода

Балымова Н.П., педагог-библиотекарь

Приобретение учебников "Шахматы в школе"

Балымова Н.П., педагог-библиотекарь

Балымова Н.П., педагог-библиотекарь

Выпуск буклетов "Шахматное обозрение"

Декабрь 2019- май 2020

Балымова Н.П., педагог-библиотекарь

Черепанова Л.М., куратор проекта "Умный ферзь"

Методическая работа

Мониторинг реализации программы внеурочной деятельности по шахматам

Могильникова Н.Я., зам.директора по УВР

Мониторинг сформированности УУД при обучении шахматам

Черепанова Л.М., учитель начальных классов

Создание банка сценариев мероприятий по популяризации шахмат

Чешуина М.В., заместитель директора по ВР

Анализ реализации проекта "Умный ферзь"

Могильникова Н.Я., зам.директора по УВР

Чешуина М.В., заместитель директора по ВР

Методические рекомендации для педагогов по обучению шахматам

Черепанова Л.М., учитель начальных классов

Методические рекомендации для родителей по обучению детей шахматам

Черепанова Л.М., куратор проекта

Обобщение опыта по шахматному образованию в школе на Совете родителей и педагогическом совете. Выбор оптимальных и эффективных форм работы

Черепанова Л.М., куратор проекта

Включение мероприятий в годовой план работы школы на 2020-2021 учебный год

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

- создать условии для формирования и развития ключевых компетенций учащихся (коммуникативных, интеллектуальных, социальных);

- формировать универсальные способы мыслительной деятельности у школьников (памяти, внимания, творческого воображения, умения производить логические операции).

I.Обоснование выбора темы проекта .

Вся в квадратах – белых, черных,

А ряды фигур точеных –

Люди их передвигают,

Люди думают, считают –

И мы решили сделать фигуры из дерева. Несколько уроков обдумывали как выполнить фигуры, саму коробку, разрабатывали эскизы фигур, технологическую карту, и взялись за дело. Все необходимое для выполнения этого проекта у нас было под рукой, так как летом с учителем технологии мы сами заготавливали сырье. Для выполнения нашего проекта мы использовали брус из липы, березы, ДВП, гвозди, лак, краску черную, петли железные. Из инструментов и станков: СТД-120М, стамески, ножовка, молоток, рубанок, также дрель, напильники, наждачная бумага.

II.Информация по теме проекта.

Вскоре чатуранга была заимствована арабами. На арабском Востоке игра была преобразована: игроков стало двое, каждый получил под управление два комплекта фигур чатуранги, один из королей стал ферзём. От костей отказались, стали ходить по одному строго по очереди. Победа стала фиксироваться не по уничтожению всех фигур противника, а по постановке мата либо пата. Получившаяся игра называлась

Европейский вариант шахматной игры попал в Россию из Италии. Изменения в правилах, внесённые европейцами, с некоторым запозданием проникали на Русь, постепенно превращая старые русские шахматы в современные.

Эта игра способствовала развитию навыком в военном деле, как правильно наступать, выбирать вид войск и т.д. Однако в наше время эта игра не очень распространена среди молодежи. Им более приятнее играть на компьютере. И мы эти нашим проектом хотим заинтересовать молодёжь к этой игрой. Ведь было бы очень приятно, если бы твое имя прозвучало наравне с такими именами как Г.Каспаров, А.Карпов или Г.Камский.

III.Задачи по проекту.

Разработать конструкцию и изготовить шахматы.

Технические требование к проекту:

А) использовать подсобные материалы.

Б) придерживаться заданных размеров

В) при точении на токарном станке не нарушать ТБ (приложение №1)

IV. Решение задачи.

Задача решается методом контрольных вопросов

Контрольные вопросы Ответы

1.Из каких материалов изготавливаются 1.Фигуры вытачиваем из брусьев липы, фигуры и коробка шахмат? Рама коробки из бруса березы, крышка из фанеры

2.Каковы размеры коробки шахмат? 2.Высота 130 см, ширина 390мм, длина 700мм.

3.Как скрепляются боковые стенки? 3.Можно скрепить с помощью шипов

насадить на клей и т.д.

4.Можно ли при изготовлении коробки 4. Да, можно использовать

использовать электрифицированные электролобзик и это даже ускорит

инструменты? процесс изготовления.

V. Экономические расчеты, стоимость материалов, трудовые затраты.

Изделие состоит из 44 деталей: 8 стенок коробки, 2 крышки из фанеры, д2 петли и 32 фигуры. Стоимость материалов израсходованных видна из следующей таблицы.

Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.

Сначала я хотел дать полное описание своей реализации шахматного движка (я назвал его Centurion). Но тут я вдруг понял, что на эту тему пишут книжки, а не статьи. В формате статьи просто невозможно описать детально все компоненты шахматной программы с подробностями реализаций. Поэтому я решил ограничиться общим описанием моего шахматного движка и дать ссылку на его исходный код и саму программу. Выглядит программа для Windows так:



Программа для Windows.
Ходить можно как вводом хода в поле (E2-E4), так и мышкой — левая кнопка откуда, правая — куда.

Итак, начнём.
Для начала, стоит поискать специальную литературу о том, как же писать шахматные программы. Я из таковых использовал книжку Корнилова “Программирование шахмат и других логических задач” 2005 года. Одной этой книжки оказалось мало – автор не акцентировал внимание на кое-чём важном, а кое-что просто не рассказал. А это кое-что, между прочим, сильно сокращает дерево перебора. Сразу же предупреждаю, что в моём движке не используется генератор ходов на базе битовых массивов. Этот уровень мне пока недоступен. Впрочем, я особо и не пытался разобраться с ними, предпочитая написать как можно более прозрачный (для меня) механизм работы с ходами фигур, пусть даже в ущерб быстродействию (движок получился не очень быстрый, но вполне работоспособный).

Первое, о чём нам нужно подумать, так это о том, как мы будем представлять игровое поле. Оказывается, очень удобно каждую клетку представлять целым числом, отдельные биты которого отвечают за параметры этой клетки. Я для клеток задал макрос

А сама клетка у меня представлена битами как AHIIIIEWB0MFFF, где:

W-фигура белая
B-фигура чёрная
F-тип фигуры (0-фигуры нет)
M-ходила ли фигура
E-край доски
I-индекс фигуры в массиве для поиска фигур (0-15)
H-была короткая рокировка (флаг ставится только у короля и ладьи)
A-была длинная рокировка (флаг ставится только у короля и ладьи)

Чем удобно представление с помощью битов? Наложение маски позволяет быстро определять, что это за клетка. Специально для этого у меня были заданы маски:


Дальше следует решить, какого размера будет доска. 8x8 неудобно для анализа выхода за пределы доски. Гораздо удобнее задать массив 16x16 с доской посередине, задав для всех тех клеток, которые не являются доской, флаг границы. В этом случае изменение координаты по X происходит изменением координаты X на нужный шаг, а по Y на шаг*16. Доска задаётся как

Некоторые параметры в дальнейшем будет удобно задавать для поля 8x8, для этой цели стоит завести массив перекодировки координат из поля 16x16 в поле 8x8.

Кстати, чтобы не пришлось сканировать всю доску, стоит помнить, где на доске находятся фигуры. Например, так:

Теперь определимся с тем, как мы будем задавать ходы. Очень удобно сделать так:

Здесь в массивах заданы изменения координат в пространстве нашей доски 16x16 для одного шага фигуры. Ходы пешки удобно рассматривать отдельно, так как у неё ходы простые, но есть специфическое взятие на проходе.
Как таким массивом пользоваться? Ну вот, например, составление всех ходов ферзя:

Как видите, всё просто. Для хранения ходов я создал структуру

Хоть массив ходов и задаётся как

, где MAX_PLY – максимальная глубина анализа (а 200 – максимальное число ходов любой фигуры (с запасом)), но указатель на следующий элемент sMove_NextPtr позволяет удобно сортировать ходы (а сортировать их придётся). std::list (или ещё что из stl) я тут не стал использовать – у нас крайне критично быстродействие (да и я не скажу, что мастер в stl и современном Си++, скорее наоборот). Впрочем, вы можете сделать и с помощью stl и сравнить скорость работы программы – я же этого не проверял.

Ну, в целом, с ходами закончили, перейдём к алгоритмам.

Во-первых, нам нужна функция оценки позиции. Тут возможностей просто море. У меня в движке в engine_score.cpp вполне читаемо описано всё то, что я использую для оценки позиции. Там представлены массивы очков за нахождение фигуры в данной клетке поля (для поля 8x8 – так просто удобно задавать).

Во-вторых, нам нужен альфа-бета с амортизацией отказов. Думаю, рассматривать сам альфа-бета алгоритм бессмысленно — на эту тему написано множество статей и книг. Да и в общем, он (или его модификации) в основе множества шахматных программ. Самое интересное в шахматных программах, как сократить число ходов для этого алгоритма.

В-третьих, нам нужна хэш-таблица. Дело в том, что в шахматах позиция при переборе часто повторяется – зачем нам заново анализировать то, что уже мы смотрели? Выявить такую позицию и позволяет хэш-таблица. В ней хранятся “уникальные” значения, отличающие одну позицию от другой. Стоятся эти “уникальные” значения просто выполняя операцию xor для ключей элементов, описывающих позицию. Поэтому нам нужны будут массивы уникальных 64 битных чисел (вы можете и любую другую размерность взять, весь вопрос только в том, как часто будут одинаковым значениям позиции соответствовать разные позиции – ошибки хэша). У меня таблица описана так:

Ещё понадобятся ключи смены хода (так как позиции могут быть и одинаковыми, а вот цвет фигур, которые должны ходить разный). И специальный ключ так называемого нулевого хода (о самом нулевом ходе я расскажу ниже). Насколько я помню, вот об этих последних двух ключах Корнилов в своей книжке умолчал.

Все эти ключи я задал жёстко в программе, чтобы не генерировать каждый раз с проверкой уникальности.

Теперь смотрите какая штука выходит: если мы изначально позицию получим, выполнив xor всех ключей фигур на доске

, то при выполнении хода, как можно заметить, нам достаточно делать с текущим значением хэша позиции xor ключа фигуры на старом месте, а потом xor ключа фигуры на новом месте. Так же и со взятиями. Это позволяет очень быстро в процессе перебора позиций вычислять значение хэша.

В-четвертых, нам нужна такая штука, как статистика истории. Что это такое? Во время игры можно заметить, что какие-то ходы улучшают оценку позиции. Стоит этот факт отмечать, запоминать и в дальнейшем использовать при сортировке ходов. Как это сделать? Просто завести массив [64][64] ([начальная позиция фигуры на поле 8x8][конечная позиция фигуры на поле 8x8]), обнулить в начале оценки выбора лучшего хода и в дальнейшем просто увеличивать счётчик на 1 в случае хода, улучшающего для нас оценку позиции.

В-пятых, нам нужна сортировка ходов. Самыми первыми должны быть ходы с максимальной выгодой по оценке позиции. Понятно, что ходы взятия приоритетнее обычных “тихих” ходов. Ходы взятия сортируются по принципу MVV/LVA (наиболее ценная жертва – наименее ценный нападающий). При этом стоит продвигать все необычные ходы со взятием (любой ход, который не имеет тип MOVE_TYPE_SIMPLY). Так же вперёд стоит продвинуть и взятие последней ходившей фигуры противника (если взятие будет). Обычные ходы сортируются по возрастанию оценки позиции с учётом эвристики истории. Вся эта сортировка очень важна! Она и сама по себе позволяет сократить обход дерева игры, но более того, на нижних уровнях дерева можно в принципе выбрасывать почти все “тихие” ходы (и если король не под шахом) из рассмотрения без ущерба для качества игры программы! Я увидел такое в коде шахматной программы Ифрит (Ifrit) и, конечно же, применил. Это называется Late Move Reduction, насколько я понимаю.
Для этого используется следующий массив:

Здесь числа означают то, сколько “тихих” ходов анализируется в зависимости от уровня дерева (массив задан в обратном порядке). То есть, на последних для анализа 9 уровнях дерева в рассмотрении будет сначала 259 ходов, потом 131, потом 67 и так далее до 19. Это сильно ускоряет работу программы (а также об этом Корнилов вроде как тоже не рассказал в своей книжке). Разумеется, без сортировки ходов такое отсечение не заработает.

В-шестых, нам нужно обязательно продлевать анализ взятий и шахов. Это позволит увеличить точность оценки позиции.

В-седьмых, нам нужна будет эвристика убийцы. Заключается она в том, чтобы при анализе веток дерева пробовать первым ход, вызвавший отсечение на предыдущей ветке. Такой приём также позволяет сократить перебор. Следует помнить, что такой ход может быть только “тихий”: взятия и необычные ходы использовать для таких проверок нельзя.

В-восьмых, есть такая штука, как нулевой ход. Смысл в том, что можно сделать пропуск хода и посмотреть, насколько всё станет плохо. При этом можно сократить глубину анализа дерева (сделать редукцию) – всё равно оценка предварительная. Главное, не забывать пометить хэш позиции ключом этого самого нулевого хода

В-девятых, есть ещё Futility Prunning. Что это такое? На последних двух полуходах дерева оценка позиции не точна и в ряде случаев (если мы не в нулевом ходе, если ход не является шахом, взятием и ход не продление анализа ветки), а также если разность оценки позиции была больше некоторой небольшой величины, то можно просто вернуть эту оценку и не анализировать глубже. Этот приём также ускоряет работу программы.

В-десятых, для сокращения вариантов придуман ещё и Razoring. Это почти то же самое, что и Futility Prunning, но относится к последним четырём полуходам и граница оценки задаётся в некоторую стоимость допустимых потерь фигур.

В-одиннадцатых, некоторые ходы стоит продлевать в анализе. К ним относятся ходы взятия, шахов, приближения фигур противника к королю. Продлевать лучше отдельной функцией анализа, в которой только для шахов стоит запускать полный перебор. Для остальных ходов достаточно анализировать только ходы взятия. Это называется статический поиск.

В-двенадцатых, есть ещё такая штука, как Principal Variation (главное изменение). Это та линия игры, которую программа считает лучшей в данный момент. Эта линия постоянно корректируется во время перебора позиций. Ход из главной линии при сортировке стоит продвигать вперёд.

Ну вот вроде бы и всё из того набора, который использует мой шахматный движок. Надеюсь, я ничего нигде не напутал, так как движку уже два года и я столько же его не касался и вполне мог что-либо забыть.

В архиве лежит сам движок (он поддерживает UCI, так что можете подключить его к Arena), программа под Windows для игры с ним (на скорую руку), шахматы для QNX 6.3. Уровень игры я точно оценить не могу (я не шахматист, как ни странно), но вроде как играет достаточно неплохо.

Читайте также: