我对编写国际象棋引擎感兴趣(主要是作为学习练习),并且对人们知道的可能感兴趣或使用的任何资源感兴趣,而实际上却是任何东西:论文,书籍,理论,教程,可能是有用。
Answers:
从我的档案中:
在创建国际象棋引擎时,我花了几个月的时间来尝试收集好的资源,这些资源描述了创建国际象棋游戏的一些较难方面。以下是我发现最有用的列表:
国际象棋编程弗朗索瓦·多米尼克·拉勒梅
这是使我进入计算机象棋的文章,它是计算机下象棋的一个很好的概述。它非常易于阅读,它将为您介绍所有术语和关键字。
电脑象棋维基,在最近几个月中确实得到了扩展。这是参考资料的极佳资源。
https://www.chessprogramming.org/Main_Page
路易斯·凯斯勒的电脑国际象棋链接
阅读完以上资源后,其余内容可以在以下链接页面上找到。
http://www.lkessler.com/cclinks.shtml
最后但并非最不重要的一点是,我写了一个Computer Chess Blog,它引导您完成从头开始用C#编写象棋引擎的所有步骤,其中包括计算机象棋链接部分和象棋游戏入门套件。
亚当·贝伦特
这基本上是在人工智能(AI)领域。
在象棋游戏中使计算机“思考”的最常见方法是使用mini-max方法,其中计算机通过分析从当前状态提前做出不同动作的结果来“思考”。
例如,可以根据许多标准来确定来自不同动作的结果的“优劣”,例如得分,剩下的敌人数量,获胜状态。例如,如果您将玩家向右移动并赢得了比赛,那是一个非常好的状态。但是,如果将其向左移动,则一无所获。向右移动是合理的。定义“善良”的功能通常称为启发式功能。
此过程以递归方式完成许多回合。转数越多,您将需要更多的时间。匝数越多,您的软件就越智能。只向前转一圈可能只会导致贪婪的选择。智能国际象棋软件具有强大的启发功能,可以多方面考虑。
ps。我在这里没有解释mini-max算法的一些细节,但这应该涵盖了基本思想。