有什么好的写象棋引擎的资源?[关闭]


80

我对编写国际象棋引擎感兴趣(主要是作为学习练习),并且对人们知道的可能感兴趣或使用的任何资源感兴趣,而实际上却是任何东西:论文,书籍,理论,教程,可能是有用。


Answers:


120

从我的档案中:


5
Chess Programming Wiki非常酷。
Paul Wicks,2009年


谢谢,爷爷-链接现已修复。
HTTP 410

第二个链接再次断开。
伊蒙(Imon)2013年

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

最后但并非最不重要的一点是,我写了一个Computer Chess Blog,它引导您完成从头开始用C#编写象棋引擎的所有步骤,其中包括计算机象棋链接部分和象棋游戏入门套件。

http://www.chessbin.com

亚当·贝伦特


1

这基本上是在人工智能(AI)领域。

在象棋游戏中使计算机“思考”的最常见方法是使用mini-max方法,其中计算机通过分析从当前状态提前做出不同动作的结果来“思考”。

例如,可以根据许多标准来确定来自不同动作的结果的“优劣”,例如得分,剩下的敌人数量,获胜状态。例如,如果您将玩家向右移动并赢得了比赛,那是一个非常好的状态。但是,如果将其向左移动,则一无所获。向右移动是合理的。定义“善良”的功能通常称为启发式功能。

此过程以递归方式完成许多回合。转数越多,您将需要更多的时间。匝数越多,您的软件就越智能。只向前转一圈可能只会导致贪婪的选择。智能国际象棋软件具有强大的启发功能,可以多方面考虑。

ps。我在这里没有解释mini-max算法的一些细节,但这应该涵盖了基本思想。


1

我加入了Paul Wicks的同一个联赛(以上),我也想为自己的学习而写一个象棋引擎,唯一的限制是我的日常工作(该工作是在无聊的Web服务和其他工作上进行的..),但它的价值疼痛。

我决定使用逐层方法进行构建。我几乎已经完成了多人游戏,即(人类与人类)。

完成此操作后,我很想合并AI层以支持(计算机与人类)播放方案。这是我最担心的部分,我在此线程中找到了非常不错的帮助提示,非常感谢大家。

目前,我精通的语言是Java,以防万一性能受到影响,那么我可以将其移植到C ++。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.