Какие есть хорошие ресурсы для написания шахматного движка? [закрыто]


82

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


Ответы:


123

Из моего архива:


5
Вики по шахматному программированию - это круто.
Пол Уикс,


Спасибо, дедушка - ссылка исправлена.
HTTP 410

Вторая ссылка снова не работает.
Imon

1
@Imon, у меня вторая ссылка работает.
HTTP 410,

31

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

Шахматная программа - Франсуа Доминик Лараме

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

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-i-getting-started-r1014

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

https://www.chessprogramming.org/Main_Page

Компьютерные шахматы Луи Кесслера Links

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

http://www.lkessler.com/cclinks.shtml

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

http://www.chessbin.com

Адам Берент


1

Это в основном в области искусственного интеллекта (ИИ).

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

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

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

пс. Есть некоторые детали алгоритма мини-макс, которые я здесь не объяснял, но они должны охватывать основную идею.


1

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

Я решил построить его послойно. Я почти закончил с многопользовательской частью, то есть (ЧЕЛОВЕК против ЧЕЛОВЕКА).

Как только я закончу с этим, я хотел бы включить уровень AI для поддержки игровой схемы (КОМПЬЮТЕР против ЧЕЛОВЕКА). Это часть, которая меня больше всего беспокоит, я нашел здесь очень хорошие подсказки в этой теме, большое спасибо всем вам.

В настоящее время я хорошо разбираюсь в языке Java, и в случае падения производительности я могу перенести его на C ++.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.