开源国际象棋或PGN查看库


15

是否有人熟悉任何语言的开源国际象棋库,并且可以执行以下任何操作:

  • 解析PGN和/或FEN
  • 根据位置计算有效的棋步
  • 处理整个国际象棋游戏

编辑:

抱歉,我应该更清楚。我不是在寻找开源软件,而是在寻找开源编程库。

Answers:


9

fish鱼

Stockfish(网站github)是一个开源且功能强大的UCI引擎。因此,它可以完成您所要求的所有操作,但通常需要GUI才能执行此操作。但是,您也可以通过命令提示符/ shell访问所有功能。


11

狡猾

Crafty是一个强大的国际象棋程序,可以与Winboard,Xboard和Scid一起使用。因此,它可用于所有主要操作系统。

席德

Scid可以维护国际象棋游戏的数据库,您可以分析(结束)游戏。该软件可用于所有主要操作系统。

Xboard

Xboard是Internet Chess Server的用户界面。它使用X Windows系统,因此我假设它仅在GNU / Linux下运行。Xboard可以用作查看器,并支持所有形式的国际象棋。


10

象棋

是用Python构建的国际象棋客户端。您可以轻松使用它的象棋逻辑库。

举例说明如何使用库来控制国际象棋引擎,但也可以仅使用国际象棋逻辑:

from pychess.Utils.Board import Board
from pychess.Utils.lutils.lmove import toSAN
from pychess.Utils.lutils.lmovegen import genAllMoves
board = Board(setup=True).board
for move in genAllMoves (board):
    print (toSAN (board, move)))

它非常快,因为它已用于内置引擎,并且具有许多高级功能,例如解析一长串的SAN移动,生成检查逃避和静态交换评估(SEE)。


感谢您的分享,看起来非常有趣。以上是做什么的?相似的代码片段可以从磁盘导入pgn文件并以类似的循环打印所有动作吗?是否具有导出html的库?是否有文档可以帮助您进行类似的脚本编写?

并检查了链接,看来实际工具尚未在Windows上运行-尚未。您是否认为上述代码可以在Windows上以无头模式运行?

1
上面的代码使用标准代数符号在默认位置打印出所有可能的白色移动。使用相同的模块对动作进行解析也很容易。如果您的项目是GPL,我将复制整个lutils模块,它是纯Python的,不需要任何Linux特定的进程处理。
Thomas Ahle 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.