Python: Оценка позиции на доске с использованием вяленой рыбы из библиотеки python-chess - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь создать движок, но моя функция оценки ужасна, поэтому я решил использовать вяленую рыбу, чтобы оценить его для меня.

import chess
import chess.engine

def stockfish_evaluation(board, time_limit = 0.01):
    engine = chess.engine.SimpleEngine.popen_uci("stockfish/stockfish_10_x64")
    result = engine.play(board, chess.engine.Limit(time=time_limit))
    return result.info["score"]

board = chess.Board("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1")
result = stockfish_evaluation(board)
print(result)

, но он печатает:

KeyError: 'score'

1 Ответ

1 голос
/ 25 октября 2019

Я думаю, что вы используете неправильную функцию, она должна быть engine.analyse не engine.play

import chess
import chess.engine

def stockfish_evaluation(board, time_limit = 0.01):
    engine = chess.engine.SimpleEngine.popen_uci("stockfish_10_x64")
    result = engine.analyse(board, chess.engine.Limit(time=time_limit))
    return result['score']

board = chess.Board("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1")
result = stockfish_evaluation(board)
print(result)

#+58
...