Связь с дочерним процессом двунаправленно через STDIO - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь связаться с шахматным движком Stockfish из PHP-скрипта.Для этого я использую протокол UCI , поэтому мне нужно будет посылать команды построчно.Например, это то, что я обычно вводил бы в командной строке Windows:

Stockfish.exe
position startpos
go depth 16

Stockfish.exe - это 64-битная версия шахматного движка Stockfish

Я не смог сделать это, используя exec().Вот как я пытался это сделать:

exec("stockfish.exe\nposition startpos\ngo depth 16");

Двигатель работает, но команды не выполняются, поэтому я получаю:

Stockfish 10 64 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott

, где я должен получитьчто-то вроде:

info depth 1 seldepth 1 multipv 1 score cp 116 nodes 20 nps 10000 tbhits 0 time 2 pv e2e4  
info depth 2 seldepth 2 multipv 1 score cp 112 nodes 54 nps 27000 tbhits 0 time 2 pv e2e4 b7b6  
info depth 3 seldepth 3 multipv 1 score cp 148 nodes 136 nps 45333 tbhits 0 time 3 pv d2d4 d7d6 e2e4  
info depth 4 seldepth 4 multipv 1 score cp 137 nodes 247 nps 61750 tbhits 0 time 4 pv d2d4 e7e6 e2e4 c7c6  
bestmove d2d4 ponder e7e6

Я прочитал много тем по связанным вопросам, но не смог найти обходной путь.Есть ли способ сделать это?

...