Jogos de xadrez de código aberto ou bibliotecas de visualização pgn


15

Alguém conhece alguma biblioteca de xadrez de código aberto em qualquer idioma que possa fazer o seguinte:

  • analisar PGNs e / ou FENs
  • calcular movimentos válidos de xadrez com base na posição
  • processar um jogo de xadrez inteiro

EDITAR:

Desculpe, eu deveria ser mais claro. Não estou procurando software de código aberto, estou procurando bibliotecas de programação de código aberto.

Respostas:


9

Stockfish

O Stockfish ( site e github ) é um mecanismo UCI de código aberto e muito forte . Como tal, ele pode fazer tudo o que você está pedindo, mas geralmente requer uma GUI para fazê-lo. No entanto, você também pode acessar todas as funcionalidades por meio de um prompt de comando / shell.


11

Crafty

O Crafty é um programa de xadrez forte e pode ser usado com o Winboard, Xboard e Scid. Portanto, está disponível para todos os principais sistemas operacionais.

Scid

O Scid pode manter bancos de dados de jogos de xadrez, você pode analisar jogos (finais). O software está disponível para todos os principais sistemas operacionais.

Xboard

Xboard é uma interface de usuário para o Internet Chess Server. Ele usa o sistema X Windows, então suponho que isso seja executado apenas no GNU / Linux. O Xboard pode ser usado como visualizador e suporta todas as formas de xadrez.


10

PyChess

É um cliente de xadrez criado em Python. Você pode usá-lo sem qualquer problema.

São exemplos de como você pode usar as bibliotecas para controlar os mecanismos de xadrez, mas também pode usar apenas a lógica do xadrez:

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)))

É muito rápido, pois é usado para o mecanismo interno e possui muitos recursos avançados, como analisar uma lista longa de movimentações da SAN, gerando evasões de cheques e avaliação de troca estática (SEE).


Obrigado por compartilhar, parece muito interessante. O que o acima faz? Um trecho semelhante poderia importar um arquivo pgn do disco e imprimir todos os movimentos em um loop semelhante? Possui bibliotecas para exportar html? Existe documentação que ajudaria a criar um tipo semelhante de script?
Joe

E verificando o link, parece que a ferramenta real ainda não roda no Windows - ainda. Você acha que o código acima seria executado no Windows no modo sem cabeça?
8133 Joe

11
O código acima imprime todos os movimentos possíveis para branco na posição padrão, usando a Notação Algébrica Padrão. A análise de movimentos também é fácil com o mesmo par de módulos. Se o seu projeto fosse GPL, copiei todo o módulo lutils, que é puro Python e não requer nenhum processamento de processo específico do Linux.
Thomas Ahle
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.