问题标签 [uci]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
52 浏览

command-line - 如何在 Vb6 中的控制台程序的相同实例中运行 2 个命令行?

我需要使用 UCI 协议在国际象棋引擎中运行 2 个命令行。

1-位置分“r1k4r/p2nb1p1/2b4p/1p1n1p2/2PP4/3Q1NB1/1P3PPP/R5K1 b”

2- 深度 10

第一行设置引擎 (stockfish) 中的 FEN 位置。第二个命令引擎开始分析位置,然后给我一个输出。

在 vb6 我的代码是这样的:

并且运行完美,但是如果我尝试发送第二个命令,它将返回以重新启动引擎,而没有关于我之前设置的位置的“记忆”。

我还尝试使用“&”参数嵌套这两个命令,但结果相同并且还尝试使用“cmd /k”但再次没有成功。

0 投票
0 回答
30 浏览

pipe - 如何在 C++ 中使用 LC0 管道消息

我正在实现一个 C++ 程序,它将与一个与 UCI 兼容的国际象棋引擎进行通信。我的程序将打开国际象棋引擎并将其作为子进程运行,然后使用流和管道与其通信。我需要这样做,以便我可以获得引擎生成的所有合法动作。这样我就可以将它与我自己的引擎的移动生成器进行比较,看看它是否准确。

我以前写过与子进程通信的程序,它们工作得很好。我使用了 boost-process 并将 std_in 和 std_out 与 ipstream 和 opstream 一起路由。但是对于 LC0 国际象棋引擎,每当我尝试读取它的 std_out 数据时,我的程序都会挂起并且不会在启动时打印 LC0 输出的内容。对于其他命令行应用程序,我的代码工作得很好。它与 LC0 一起工作的唯一时间是当我不重新路由引擎 std_in 和 std_out 时,或者当我将 --help 选项传递给 lc0.exe 时,在这种情况下,程序会打印帮助消息并关闭。我想知道当 lc0.exe 的 std_out 被重新路由到管道时,它的行为是否不同。

这是我的代码的简化示例。

我的代码应该是什么样子,以便它将 std_out 数据从 LC0 读取到字符串中而不会挂起。

我正在编译:操作系统:Windows 10 IDE:VS2019 Boost:1.76 版

0 投票
0 回答
66 浏览

date - 以哪种格式给出日期?

我从https://archive.ics.uci.edu/ml/datasets/Real+estate+valuation+data+set?source=post_page下载了一个名为房地产估价数据集的数据集。但我无法理解交易日期的格式。他们给出了一些例子,例如2013.250=2013 March, 2013.500=2013 June等。

0 投票
1 回答
103 浏览

c++ - 在 C++ 中使用 boost 与可执行文件交互

我正在尝试将我正在编写的程序与stockfishC++ 中现有的国际象棋引擎 () 连接起来。为此,我正在使用 Boost,但遇到了流程问题。engine.exe是我试图与之交互的可执行文件,但它似乎在uci. 当程序到达第二个 while 循环时,sf.running()即使它从未终止,也会返回 false。

0 投票
0 回答
129 浏览

c++ - 如何将我的 C++ Chess GUI 连接到stockfish UCI?

我想明确一点:我想将我的国际象棋 GUI 连接到国际象棋 UCI。图形用户界面 -> 引擎。通用国际象棋 UCI 将标准输出一个“bestmove”,然后可以由国际象棋 GUI 执行。但我遇到的唯一问题是让我的 GUI 将自己附加到这个单独的程序并获取 stdout 调用。我试过 _popen 和 system 但这两个函数会在调用某些东西时关闭程序。这就是我的意思:

stockfish 运行了两次,由两个“Stockfish 开发人员的 Stockfish 091021(参见 AUTHORS 文件)”指示,我的输出是 e2e4,清楚地表明它忽略了我的起始位置。我也试过这个我在stackoverflow上找到的函数,但遇到了同样的问题。

我还尝试将程序作为一行运行,并将 '\n' 放在单独的命令之间,但这也不起作用。我错过了什么?

0 投票
1 回答
49 浏览

shell - uci 分析器国际象棋程序的命令行问题

我目前正在尝试使用在此链接上找到的 uci 分析器:

https://www.cs.kent.ac.uk/people/staff/djb/uci-analyser/

我正在尝试在 Ubuntu 21.0 impish 上运行它。使用了源文件。通过使用 Makefile 与 Readme.txt 文件一起确认 C++ 编译器和确认安装。确认通过 apt 在 Ubuntu 中安装了 stockfish。确认文件“分析器”存在,所有者和组的权限为“读写”,其他“只读”并选中以允许将文件作为程序执行。

命令已尝试

analyse --engine stockfish --searchdepth 12 --annotatePGN games-uci.pgn > games-annotated.pgn

错误

分析:找不到命令

任何帮助将不胜感激。