How hard is it to implement a chess engine?
I'm wondering how hard it would be to implement a chess engine . Are there already open-source implementations?
It seems that you'd need a scoring function for a given board constellation, and a very fast way of exploring several likely future board constellations. Exploring all possible future moves is of course impossible, so one could greedily follow the most promising moves, or use approximate techniques like simulated annealing to follow likely moves probabilistically.
Do you think that is within the scope of a machine learning graduate student project -- assuming there was an open-source implementation that the students could use, that does the basic things like returning the next possible moves for a given figure? Probably too hard?
It would be a fun project to have different teams work on chess engines and then let them play against each other ...
I have spent the last year building my own chess engine in C#. It was not all that difficult. During my work I have made mistakes, I have found that information on the internet was just not presented clearly, and much of it was simply copied from other sites.
In order to make life easier for someone else going through this process, I have been documenting the development of my chess engine and posted much of the source code on my blog:
http://www.chessbin.com
I have even created a Chess Game Development Kit that will get you started in developing your own chess engine, which contains:
My site is basically dedicated for people just like you; people that want to get started on building their own chess engine.
Yes, this is definitely within the scope of a student project. Here are some links from my archive to get you started:
Crafty is one of the top chess engines and completely open source. However I would discourage you from using it for a student project it's written in C, very complex and very hard to understand because it is highly optimized.
For educational purposes I would recommend taking a look at Adam Berents site where he describes the process he went through when he implemented a chess engine in C#. The source code is available as well of course. It's an excellent point to start from, in my opinion.
链接地址: http://www.djcxy.com/p/84642.html上一篇: 棋盘表示
下一篇: 实现一个象棋引擎有多难?