首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stockfish和Python

Stockfish和Python
EN

Stack Overflow用户
提问于 2015-04-16 07:53:31
回答 3查看 2.1K关注 0票数 3

我正在尝试使用python编写一个脚本,将国际象棋位置输入到stockfish中,并获得评估结果。

我的问题就是基于这个,How to Communicate with a Chess engine in Python?

问题出在subprocess.pipe上。

代码语言:javascript
复制
import subprocess, time
import os

os.chdir('C:\Users\Michael\Downloads\stockfish-6-win\stockfish-6-win\Windows'


engine = subprocess.Popen('stockfish', universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)

def put(command):
    print('\nyou:\n\t'+command)
    engine.stdin.write(command+'\n')

def get():
    # using the 'isready' command (eng has to answer 'readyok')
    # to indicate current last line of stdout
    engine.stdin.write('isready\n')
    print('\nengine:')
    while True:
        text = engine.stdout.readline().strip()
        if text == 'readyok':
            break
        if text !='':
            print('\t'+text)

put('go depth 15') 
get()
put('eval')
get() 
put('position fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1') 
get()

我在stdin=subprocess.PIPE后的逗号上收到无效语法错误

任何帮助解决这个问题或尝试其他方法的人都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2015-04-16 07:57:27

这条线

代码语言:javascript
复制
os.chdir('C:\Users\Michael\Downloads\stockfish-6-win\stockfish-6-win\Windows'

缺少一个右括号。你可能想要

代码语言:javascript
复制
stockfish_cmd = 'C:\\Users\\Michael\\Downloads\\stockfish-6-win\\stockfish-6-win\\Windows\\stockfish'
engine = subprocess.Popen(
    stockfish_cmd, universal_newlines=True,
    stdin=subprocess.PIPE, stdout=subprocess.PIPE)

注意反斜杠的加倍,尽管我相信在这种情况下它只是碰巧是无害的。

票数 2
EN

Stack Overflow用户

发布于 2015-04-16 07:55:42

您的第三行缺少一个)

os.chdir('C:\Users\Michael\Downloads\stockfish-6-win\stockfish-6-win\Windows'

应为os.chdir('C:\Users\Michael\Downloads\stockfish-6-win\stockfish-6-win\Windows')

票数 0
EN

Stack Overflow用户

发布于 2016-03-23 23:51:51

我在github上放了一个脚本来返回Stockfish的位置评估。也是一个python包装器here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29662984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档