#command-line #vb6 #uci
Вопрос:
Мне нужно запустить 2 командные строки в chess engine, используя протокол UCI.
1 — позиция fen «r1k4r/p2nb1p1/2b4p/1p1n1p2/2PP4/3Q1NB1/1P3PPP/R5K1 b»
2 — перейти на глубину 10
В первой строке задается позиция FEN в двигателе (stockfish). Вторая команда запускает двигатель, чтобы проанализировать положение, а затем выдает мне вывод.
В vb6 мой код такой:
With CreateObject("WScript.Shell")
.Run "cmd /c start /b E:UCI-Vb6stockfish_9_x64.exe position fen "r1k4r/p2nb1p1/2b4p/1p1n1p2/2PP4/3Q1NB1/1P3PPP/R5K1 b" > E:UCI-Vb6out.txt", 1, True
End With
и работает отлично, но если я попытаюсь отправить вторую команду, она вернется для повторного запуска двигателя без «воспоминаний» о позиции, которую я установил раньше.
Я также пытаюсь вложить две команды с параметром»amp;», но с тем же результатом, а также пытаюсь использовать «cmd /k», но снова безуспешно.
Комментарии:
1. chess.stackexchange.com/questions/11163/piping-stockfish-input Похоже на это, однако, простая передача команд, похоже, работает… Я получаю «bestmove d5b4» внутри
result.out
с помощью двух команд в текстовом файлеstart /b stockfish_13_win_x64.exe < cmds.txt > result.out
. Он не захватывает все выходные данные, но у него есть результат.2. Хорошо, он работает с командами в cmds.txt … но думает только 2 мс ..независимо от того, какую глубину или время движения я написал… даже с разрывом строки «n » в конце