Шахматы с открытым исходным кодом или просмотр pgn библиотек

15

Кто-нибудь знаком с любыми открытыми шахматными библиотеками на любом языке, которые могут выполнять любое из следующих действий:

  • разбирать PGN и / или FEN
  • рассчитать действительные шахматные ходы на основе позиции
  • обработать всю игру в шахматы

РЕДАКТИРОВАТЬ:

Извините, я должен быть более ясным. Я не ищу программное обеспечение с открытым исходным кодом, я ищу библиотеки с открытым исходным кодом.

Джеймс Томазино
источник

Ответы:

9

вяленая рыба

Stockfish ( веб-сайт и GitHub ) является открытым исходным кодом и очень сильным движком UCI . Таким образом, он может делать все, что вы просите, но обычно для этого требуется графический интерфейс. Однако вы можете получить доступ ко всем функциям через командную строку / оболочку.

Bryan
источник
11

коварный

Crafty - сильная шахматная программа, которую можно использовать с Winboard, Xboard и Scid. Так что он доступен для всех основных операционных систем.

Scid

Scid может поддерживать базы данных шахматных игр, вы можете анализировать (заканчивать) игры. Программное обеспечение доступно для всех основных операционных систем.

Xboard

Xboard - это пользовательский интерфейс к интернет-шахматному серверу. Он использует X Windows System, поэтому я предполагаю, что он работает только под GNU / Linux. Xboard может быть использован как зритель и поддерживает все виды шахмат.

QBi
источник
10

PyChess

Это шахматный клиент, построенный на 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.
Томас Але