我只是在製作一個基本的國際象棋引擎。我能夠從http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.htm得到很多建議,但真正的網站已關閉,並且並非所有網頁都已歸檔。 (任何人都知道在哪裏可以找到完整版本的布魯斯網站?)與XBoard(國際象棋引擎)通信(C++/C)
但現在到了真正的問題:我如何與XBoard進行通信?我知道這是通過stdin和stdout,但我一直在代碼中遇到問題。基本上,上手的,我只是想
- 從XBoard接收輸入並打印到控制檯/屏幕
- 給硬編碼輸入的舉動XBoard並將它使移動
- 程序實用功能,並隨機選擇隨機移動棋。
之後,我可以開始實施真正的事情,如alpha-beta搜索。
我被困在現在的前兩件事上。這是我試圖寫/借的一些代碼。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define STR_BUFF 256
using namespace std;
int main (int argc, const char * argv[])
{
char input[STR_BUFF];
char output[STR_BUFF];
while(true){
fflush(stdout);
// read input
if (!fgets(input, STR_BUFF, stdin)){
printf("terminated");
return 0;;
}
printf("%s", input);
}
return 0;
}
我剛剛回到成C後約6個月破裂,這是我使用標準輸入/輸出管道與其他程序通信的第一個項目(上下浮動幾個基本程序),所以我將不勝感激任何幫助和任何解釋。我知道編程一個國際象棋引擎是一項艱鉅的任務,但我已經編制了國際象棋規則,而我能找到的布魯斯的網站絕對是驚人的。
我可以建議你看http://chessprogramming.wikispaces.com/作爲布魯斯莫蘭德網站的替代品嗎? – 2012-03-08 19:19:13