Я заинтересован в написании шахматного движка (в основном в качестве обучающего упражнения), и мне были бы интересны любые известные людям ресурсы, которые могут быть интересны или полезны, что угодно на самом деле: статьи, книги, теория, учебники, все, что может быть полезно.
82
Ответы:
Из моего архива:
источник
Создавая свой шахматный движок, я потратил месяцы, пытаясь собрать хорошие ресурсы, описывающие некоторые из более сложных аспектов создания шахматной игры. Вот список тех, которые я нашел наиболее полезными:
Шахматная программа - Франсуа Доминик Лараме
Эта статья познакомила меня с компьютерными шахматами. Это отличный обзор того, как компьютеры играют в шахматы. Его очень легко читать, и он познакомит вас со всеми терминами и ключевыми словами.
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
Адам Берент
источник
Это в основном в области искусственного интеллекта (ИИ).
Самый распространенный способ заставить компьютер «думать» в шахматной игре - это использовать метод мини-макс, когда компьютер «думает», анализируя результаты выполнения различных ходов, заблаговременно от текущего состояния.
«Качество» результатов различных ходов может быть определено по многим критериям, таким как, например, счет, количество оставшихся врагов, состояние победы. Например, если вы переместите игрока вправо и выиграете игру, это очень хорошее состояние. Но если вы переместите его влево, вы ничего не получите. Разумно двигаться вправо. Эта функция, определяющая «доброту», обычно называется эвристической функцией.
Этот процесс выполняется рекурсивно для многих ходов. Чем больше количество поворотов, тем больше времени вам понадобится. И чем больше количество оборотов, тем умнее ваше программное обеспечение. Прогнозирование только за один ход может привести только к жадному выбору. Интеллектуальное шахматное программное обеспечение имеет отличную эвристическую функцию и позволяет заранее продумать множество вариантов.
пс. Есть некоторые детали алгоритма мини-макс, которые я здесь не объяснял, но они должны охватывать основную идею.
источник
Я присоединился к той же лиге Пола Уикса (см. Выше), я тоже хочу написать шахматный движок для собственного обучения, единственное ограничение - это моя дневная работа (которая заключается в работе над скучными веб-сервисами и прочим ...), но она того стоит. боль.
Я решил построить его послойно. Я почти закончил с многопользовательской частью, то есть (ЧЕЛОВЕК против ЧЕЛОВЕКА).
Как только я закончу с этим, я хотел бы включить уровень AI для поддержки игровой схемы (КОМПЬЮТЕР против ЧЕЛОВЕКА). Это часть, которая меня больше всего беспокоит, я нашел здесь очень хорошие подсказки в этой теме, большое спасибо всем вам.
В настоящее время я хорошо разбираюсь в языке Java, и в случае падения производительности я могу перенести его на C ++.
источник