Juego de ajedrez de código abierto o bibliotecas de visualización de imágenes


15

¿Alguien está familiarizado con las bibliotecas de ajedrez de código abierto en cualquier idioma que puedan hacer lo siguiente:

  • analizar PGN y / o FEN
  • calcular movimientos de ajedrez válidos basados ​​en la posición
  • procesar un juego de ajedrez completo

EDITAR:

Lo siento, debería ser más claro. No estoy buscando software de código abierto, estoy buscando bibliotecas de programación de código abierto.

Respuestas:


9

Pescado de seco

Stockfish ( sitio web y github ) es un motor UCI de código abierto y muy fuerte . Como tal, puede hacer todo lo que está pidiendo, pero generalmente requiere una GUI para hacerlo. Sin embargo, también puede acceder a todas las funciones a través de un símbolo del sistema / shell.


11

Astuto

Crafty es un fuerte programa de ajedrez y se puede usar con Winboard, Xboard y Scid. Por lo tanto, está disponible para todos los principales sistemas operativos.

Scid

Scid puede mantener bases de datos de juegos de ajedrez, puede analizar (finalizar) juegos. El software está disponible para todos los principales sistemas operativos.

Xboard

Xboard es una interfaz de usuario para el servidor de ajedrez de Internet. Utiliza el sistema X Windows, así que supongo que esto solo se ejecuta bajo GNU / Linux. Xboard se puede usar como visor y admite todas las formas de ajedrez.


10

PyChess

Es un cliente de ajedrez construido en Python. Puede usar sus bibliotecas de lógica de ajedrez sin muchos problemas.

Son ejemplos de cómo puede usar las bibliotecas para controlar los motores de ajedrez, pero también puede usar solo la lógica del ajedrez:

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

Es muy rápido, ya que se usa para el motor incorporado y tiene muchas características avanzadas, como analizar una larga lista de movimientos SAN, generar evasiones de cheques y evaluación de intercambio estático (SEE).


Gracias por compartir, se ve muy interesante. ¿Qué hace lo anterior? ¿Podría un fragmento similar importar un archivo pgn del disco e imprimir todos los movimientos en un bucle similar? ¿Tiene bibliotecas para exportar html? ¿Existe documentación que ayudaría a hacer un tipo similar de secuencias de comandos?
Joe

Y al revisar el enlace, parece que la herramienta real no se ejecuta en Windows, todavía. ¿Crees que el código anterior se ejecutaría en Windows en modo sin cabeza?
Joe

1
El código anterior imprime todos los movimientos posibles para el blanco en la posición predeterminada, utilizando la notación algebraica estándar. Analizar movimientos también es fácil con el mismo par de módulos. Si su proyecto fuera GPL, simplemente copiaría todo el módulo lutils, que es Python puro y no requiere ningún manejo de proceso específico de Linux.
Thomas Ahle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.