如何阻止 chess.engine.SimpleEngine.popen_uci()

我正在制作自己的国际象棋 GUI,并为此使用 python 国际象棋和鳕鱼。将其冻结为可执行文件后,每次调用时chess.engine.SimpleEngine.popen_uci('location\\of\\stockfish'),它都会打开 stockfish 的 shell,如果我关闭 shell,stockfish 将停止工作。我该怎么做才能使 shell 仅在后台运行并且对用户不可见?



慕森王
浏览 121回答 2
2回答

慕尼黑的夜晚无繁华

扩展@BoarGules 答案:engine = chess.engine.SimpleEngine.popen_uci(sf,startupinfo = subprocess.STARTUPINFO(dwFlags=subprocess.STARTF_USESHOWWINDOW))

德玛西亚99

这是一个特定于平台的问题,我猜测'location\\of\\stockfish'Windows 是您感兴趣的平台。popen_uci接受 ** (额外关键字)参数,您可以使用它来将参数传递给subprocess.Popen(). 使用 passthrough 参数startupinfo提供subprocess.STARTUPINFO. 这反过来可以设置 win32 标志wShowWindow来做你想做的事。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python