实现一个象棋引擎有多难?
我想知道如何实现一个国际象棋引擎 。 有没有开源的实现?
看起来你需要给定棋盘星座的得分函数,以及探索几个未来棋盘星座的快速方法。 探索所有可能的未来动作当然是不可能的,所以人们可以贪婪地遵循最有前途的动作,或者使用类似模拟退火的近似技术来概率地跟踪可能的动作。
你认为这是在机器学习研究生项目的范围之内 - 假设有一个学生可以使用的开放源代码实现,那么基本的东西就像返回给定数字的下一个可能的动作一样? 可能太难了?
这将是一个有趣的项目,让不同的团队在国际象棋引擎上工作,然后让他们互相对抗......
我花了去年用C#构建自己的国际象棋引擎。 这并不困难。 在我的工作中,我犯了错误,我发现互联网上的信息只是没有清楚表达出来,其中大部分都是从其他网站复制而来。
为了让其他人能够更轻松地完成这一过程,我一直在记录我的国际象棋引擎的开发情况,并在我的博客上发布了大量源代码:
http://www.chessbin.com
我甚至创建了一个国际象棋游戏开发工具包,可以帮助您开始开发自己的国际象棋引擎,其中包含:
我的网站基本上是专为像你这样的人而设; 想要开始构建自己的国际象棋引擎的人。
是的,这绝对是在一个学生项目的范围内。 以下是我的档案中的一些链接,以帮助您入门:
狡猾是顶级国际象棋引擎之一,完全开源。 不过,我会阻止你将它用于C语言编写的学生项目,这非常复杂,很难理解,因为它是高度优化的。
为了教育目的,我建议看看Adam Berents网站,他描述了他在C#中实现国际象棋引擎时所经历的过程。 源代码当然可用。 在我看来,这是一个很好的起点。
链接地址: http://www.djcxy.com/p/84641.html