Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将国际象棋引擎与C+连接+;图形用户界面程序 我想把我的C++程序和一个象棋引擎连接起来,以便让敌人有人工智能。 在我的C++程序中,>用户将移动(例如A2A3)->我将把这个字符串传递给国际象棋引擎>引擎将更新板->引擎将启动.i,用于计算敌人移动->引擎将把敌人的移动作为字符串(例如A7A6)到我的C++程序--> ET/_C++_Io_Exe_Standards_Chess - Fatal编程技术网

将国际象棋引擎与C+连接+;图形用户界面程序 我想把我的C++程序和一个象棋引擎连接起来,以便让敌人有人工智能。 在我的C++程序中,>用户将移动(例如A2A3)->我将把这个字符串传递给国际象棋引擎>引擎将更新板->引擎将启动.i,用于计算敌人移动->引擎将把敌人的移动作为字符串(例如A7A6)到我的C++程序--> ET/

将国际象棋引擎与C+连接+;图形用户界面程序 我想把我的C++程序和一个象棋引擎连接起来,以便让敌人有人工智能。 在我的C++程序中,>用户将移动(例如A2A3)->我将把这个字符串传递给国际象棋引擎>引擎将更新板->引擎将启动.i,用于计算敌人移动->引擎将把敌人的移动作为字符串(例如A7A6)到我的C++程序--> ET/,c++,io,exe,standards,chess,C++,Io,Exe,Standards,Chess,我读到为了让我的程序与象棋引擎交互,我必须启动chess_engine.exe文件,并通过标准输入/输出与之交换命令 你能告诉我Visual Studio程序代码如何启动exe文件并与之交换命令吗??有什么例子吗 提前感谢您。要做到这一点,您需要使用引擎启动一个新线程或进程。通常,您将启动一个新流程,其中引擎的主要功能将是新流程的起点 现在,您的应用程序中将有两个进程。GUI应用程序是父进程,而引擎本身是子进程。您需要通过标准的国际象棋UCI协议与引擎通信。您可以通过管道将输入和输出传递到子进程

我读到为了让我的程序与象棋引擎交互,我必须启动chess_engine.exe文件,并通过标准输入/输出与之交换命令

你能告诉我Visual Studio程序代码如何启动exe文件并与之交换命令吗??有什么例子吗


提前感谢您。

要做到这一点,您需要使用引擎启动一个新线程或进程。通常,您将启动一个新流程,其中引擎的主要功能将是新流程的起点

现在,您的应用程序中将有两个进程。GUI应用程序是父进程,而引擎本身是子进程。您需要通过标准的国际象棋UCI协议与引擎通信。您可以通过管道将输入和输出传递到子进程(即引擎)或从子进程输出

假设你想开始一个新游戏。您将发出以下UCI命令:

isready
ucinewgame

请仔细阅读UCI规范。你可以在谷歌上找到它。

哪个操作系统?还是使用C++11或Boost?对于Windows,请参见您应该使用UCI国际象棋界面,它基本上通过stdio/stdout使用管道在前端和引擎之间交换信息。是的,据我所知,UCI是一组规则/命令,用于在我的应用程序和国际象棋引擎之间交换。因此,我需要通过我的应用程序打开.exe引擎,然后通过std I/O与引擎交换命令,或者我可以使用ready吗代码,允许我指定象棋引擎文件,然后使用就绪函数,比如--> PASSH命令(A2A3)?我只使用Windows和C++(不是Boost)