2011-03-21 68 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