从芦苇传感器棋盘生成FEN字符串,并且只从鱿鱼引擎获得下一个最佳移动

时间:2018-06-04 03:02:11

标签: python chess

我正在建造一个国际象棋游戏机器人,所以在从簧片开关传感器获得1x和0的8x8矩阵之后,如何将此矩阵转换为FEN字符串以便我可以发送这个到Stockfish引擎?

另外,我在编写一个Python脚本时会遇到很多麻烦,该脚本可以通过UCI协议将FEN字符串作为输入发送,并获得下一个最佳移动。

截至目前,我并非真正关心移动验证/检查支票配对/促销。我只是想进行下一步行动。

我已经浏览了很多关于UCI协议/ API,Stockfish引擎工作以及使用python等编程的链接,但是没有一个真正帮助过我。

我很感激任何人的帮助!

1 个答案:

答案 0 :(得分:0)

首先尝试通过控制台控制Stockfish。然后,您将了解发送给它的内容以及下一步动作的格式。

启动鳕鱼。然后在控制台上输入:

启动UCI模式:

chain.proceed()

设置位置以通过FEN-String计算,例如:

uci

打印电路板以进行调试(position fen N7/P3pk1p/3p2p1/r4p2/8/4b2B/4P1KP/1R6 w - - 0 34 是stockfish命令,并且不在UCI协议中):

d

计算3秒内的最佳移动:

d

现在,您可以在不同的搜索深度获得最佳移动。获取分数和移出最后一个字符串的名称。

请提供更多信息,一个go movetime 3000 0的董事会如何获得作品的信息。关于哪一块在什么正方形上的信息在哪里?然后,我可以帮助您将其翻译为FEN-String。