Які хороші ресурси для написання шахової машини? [зачинено]


82

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


Відповіді:


122

З мого архіву:


5
Вікі про програмування шахів досить крута.
Пол Вікс,


Дякую, дідусю - посилання тепер виправлено.
HTTP 410

Друге посилання знову не працює.
Імон

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

Комп’ютерні шахові посилання Луї Кесслера

Ознайомившись із вищевказаними ресурсами, залишок можна знайти на наступній сторінці посилань.

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

Нарешті, але не менш важливим є те, що я пишу Блог із комп’ютерних шахів, який проводить вас усі етапи написання шахового двигуна на C # з нуля, він включає розділ з комп’ютерних шахів та посилання на шахові партії.

http://www.chessbin.com

Адам Берент


1

Це в основному в галузі штучного інтелекту (ШІ).

Найпоширеніший спосіб змусити комп’ютер «думати» в шаховій грі - це метод mini-max, коли комп’ютер «мислить», аналізуючи результати, зроблені заздалегідь різними рухами від поточного стану.

"Добрість" результатів різних ходів можна визначити за багатьма критеріями, такими як рахунок, кількість залишених ворогів, стан перемоги, наприклад. Наприклад, якщо ви переміщаєте гравця вправо і виграєте гру, це дуже хороший стан. Але якщо перемістити його вліво, ви нічого не отримаєте. Розумно рухатися праворуч. Цю функцію, що визначає "добро", зазвичай називають евристичною функцією.

Цей процес робиться рекурсивно протягом багатьох обертів. Чим більше кількість поворотів, тим більше часу вам знадобиться. І чим більша кількість оборотів, тим інтелектуальнішим є ваше програмне забезпечення. Думати вперед лише одним поворотом може призвести лише до жадібного відбору. Інтелектуальне програмне забезпечення для шахів має велику евристичну функцію і думайте вперед у багатьох обертах.

ps. Є деякі деталі алгоритму mini-max, яких я тут не пояснював, але це повинно охоплювати основну ідею.


1

Я приєднався до тієї самої ліги Пола Вікса (вище), я теж хочу написати шаховий двигун заради свого навчання, лише обмеження - це моя щоденна робота (яка полягає в роботі над нудними веб-сервісами тощо), але це того варте біль.

Я вирішив побудувати його, використовуючи пошаровий підхід. Я майже закінчив багатокористувацьку частину, тобто (ЛЮДИНА проти ЛЮДИНИ).

Коли я закінчу з цим, я хотів би включити рівень ШІ для підтримки схеми гри (КОМП'ЮТЕР проти ЛЮДИНИ). Це та частина, яка мене найбільше хвилює, я знайшов тут дуже приємні поради щодо допомоги, велике спасибі всім вам.

В даний час мовою, якою я добре обізнаний, є Java, якщо вийде хіт продуктивності, я можу перенести її на C ++.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.