2011-03-21 61 views
1

我有兴趣为竞技场GUI http://www.playwitharena.com实施国际象棋引擎。你知道一些关于你为了让引擎在竞技场中可用而必须遵循的具体指导方针的信息(也就是说,你可以从竞技场实际导入引擎)。写竞技场gui的国际象棋引擎

而且你认为它可能使用Java来实现竞技场国际象棋引擎或我将需要使用C++

另外,如果你知道任何其他板的GUI,可以导入引擎,尤其是如果发动机在写java,请说出来。

回答

4

你可以使用任何语言编写引擎,并且只要它使用WinBoard或UCI协议就可以与Arena竞技。这两个都涉及让你的引擎(作为一个单独的进程运行)输入和输出纯文本。你可以用C++,Java,Visual Basic,COBOL,Forth或其他你喜欢的方式编写它。 (注意:我不建议尝试在COBOL中编写国际象棋引擎。)

对于您可能选择定位的所有其他象棋引擎GUI也是如此(有很多,您可以找到几个只需将chess gui加入谷歌):他们都了解WinBoard或UCI或两者,他们并不在乎引擎的实现语言。

3

写一个可用于竞技场的引擎非常简单。您的引擎只需读取和写入标准输入和输出流(stdin和stdout)。您的引擎需要讨论特定的协议,您可以在UCI协议之间作出选择,这种协议更容易实现,但只能由接口上的一对接口或受到Windows和Linux上更多接口支持的xBoard协议支持。

我更喜欢xboard协议,因为它的使用更广泛,并且允许引擎更多地控制(例如它允许引擎使用它自己的开本)。

+0

@menjaraz:你说得对。我必须承认,我不知道UCI协议和xBoard协议。这就是说,我仍然觉得使用Xboard的引擎通常更容易控制。例如,一个xBoard引擎可以开始思考它自己,同时授权(使用硬命令),而UCI引擎必须等待GUI向它发送一条命令,指明它应该思考哪个移动。 – 2011-12-12 17:39:43