【发布时间】:2015-05-04 12:03:29
【问题描述】:
我想将我的 C++ 程序与国际象棋引擎连接起来,以便为敌人提供 AI。 在我的 c++ 程序中——>用户将移动(例如 A2A3)——>我将把这个字符串传递给国际象棋引擎——>引擎将更新棋盘——>引擎将启动 AI 以计算敌人的移动——>引擎会将敌人的移动作为字符串(例如 A7A6)提供给我的 C++ 程序-->etc
我读到,为了让我的程序与国际象棋引擎交互,我必须启动 chess_engine.exe 文件并通过标准输入/输出与其交换命令。
你能告诉我我的 Visual Studio 程序代码如何准确地启动一个 exe 文件并与之交换命令吗?有什么例子吗?
提前谢谢你。
【问题讨论】:
-
哪个操作系统?还是您使用 C++11 或 Boost?对于 Windows,请参阅 msdn.microsoft.com/en-us/library/windows/desktop/…
-
你应该使用UCI国际象棋接口,它基本上使用管道通过stdio/stdout在前端和引擎之间交换信息。
-
是的,据我所知,UCI 是一组在我的应用程序和国际象棋引擎之间交换的规则/命令。所以我需要通过我的应用程序打开 .exe 引擎,然后与引擎通过 std I/O 或者我可以使用允许我指定国际象棋引擎文件的准备好的代码,然后使用准备好的函数,如--> pass_command(a2a3) ?
-
我只使用 windows 和 c++(不是 boost)
标签: c++ io exe standards chess