我花了一年时间用C#构建自己的国际象棋引擎。这并不是很困难。在我的工作中,我犯了错误,发现互联网上的信息并没有表述得清晰明了,而且很多信息只是从其他网站复制而来。
为了让其他人更轻松地进行这个过程,我一直在记录我的国际象棋引擎开发过程,并在我的博客上发布了大量源代码:
我甚至创建了一个国际象棋游戏开发工具包,可以帮助你开始开发自己的国际象棋引擎,其中包含:
我的网站基本上是专门为像你这样想要开始构建自己的国际象棋引擎的人而设的。
是的,这绝对属于学生项目范围内。以下是我的档案库中一些链接,供您开始使用:
Crafty 是顶尖的国际象棋引擎之一,完全开源。不过,我建议你不要在学生项目中使用它,因为它是用 C 语言编写的,非常复杂,并且高度优化,很难理解。
对于教育目的,我建议查看 Adam Berents 网站,他在其中描述了他在 C# 中实现国际象棋引擎时经历的过程。当然也提供了源代码。在我看来,这是一个很好的起点。
我无法回答你的问题,但我可以回答你的最后一条评论
"让不同的团队开发国际象棋引擎并让它们相互对弈将是一个有趣的项目..."
在FICS国际象棋服务器上已经实现了这个功能。我建议你登录该网站(需要使用telnet),查看文档,可能会与能够给你有关其国际象棋机器人的具体提示的人取得联系。
我曾与丹·斯普拉克林(Dan Spracklen)一起工作,他在1978年与妻子凯瑟琳(Kathleen)一起创造了Sargon。凯瑟琳的兄弟将其移植到了Apple II上,我和他以及他的儿子一起工作过。(当我和这些人一起工作时,面向消费者的国际象棋业务已经结束了。我记得有个人推出了Atari ST和Amiga国际象棋游戏,但那时市场上真的没有太多需求。)
《Computer Gamesmanship》是1983年业余爱好者进行国际象棋编程的绝佳入门读物。它仍然很有趣。涵盖了alpha-beta、minimax等好东西。
这是一本足够好的书,你可以从那里开始,然后了解自那时以来所取得的进展。
一切都取决于你对游戏人工智能的目标!如果是两个玩家的游戏...很容易!但是AI相当困难...没错,众所周知的开源软件是GNU Chess!
一些算法:http://www.vclcomponents.com/s/0__/source_code_genetic_algorithm_chess
这里有一个国际象棋编程维基!