【发布时间】:2012-03-22 07:55:51
【问题描述】:
我只是在玩弄一个基本的国际象棋引擎。我能够从http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.htm 那里得到很多建议,但真正的网站已经关闭,并且并非所有页面都已存档。 (有人知道在哪里可以找到 Bruce 网站的完整版本吗?)
但现在是真正的问题:我如何与 XBoard 通信?我知道它是通过标准输入和标准输出,但我一直在代码中遇到问题。基本上,要开始,我只想
- 从 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;
}
我在休息大约 6 个月后才回到 C,这是我使用标准输入/标准输出管道与另一个程序(减去一些基本程序)进行通信的第一个项目,所以我将不胜感激任何帮助和任何解释.我知道编写国际象棋引擎是一项艰巨的任务,但我之前已经编写过国际象棋规则,而且我能在 Bruce 的网站上找到的内容绝对令人惊叹。
【问题讨论】:
-
我可以建议您将 chessprogramming.wikispaces.com 替换为 Bruce Moreland 的网站吗?