Open-Source-Bibliotheken zum Schachspielen oder zum Ansehen von PGNs

15

Ist jemand mit Open Source-Schachbibliotheken in einer beliebigen Sprache vertraut, die eine der folgenden Funktionen ausführen kann:

  • PGNs und / oder FENs analysieren
  • Berechnen Sie gültige Schachzüge basierend auf der Position
  • Verarbeiten Sie ein ganzes Schachspiel

BEARBEITEN:

Entschuldigung, ich sollte klarer sein. Ich suche keine Open-Source-Software, sondern Open-Source-Programmierbibliotheken.

James Tomasino
quelle

Antworten:

9

Stockfisch

Stockfish ( Website und Github ) ist eine Open-Source- und sehr starke UCI-Engine . Als solches kann es alles tun, wonach Sie fragen, erfordert jedoch normalerweise eine GUI, um dies zu tun. Sie können jedoch auch über eine Eingabeaufforderung / Shell auf alle Funktionen zugreifen.

Bryan
quelle
11

Schlau

Crafty ist ein starkes Schachprogramm und kann mit Winboard, Xboard und Scid verwendet werden. Somit ist es für alle gängigen Betriebssysteme verfügbar.

Scid

Scid kann Datenbanken mit Schachspielen verwalten, Sie können (End-) Spiele analysieren. Die Software ist für alle gängigen Betriebssysteme verfügbar.

Xboard

Xboard ist eine Benutzeroberfläche zum Internet Chess Server. Es verwendet das X Windows System, daher gehe ich davon aus, dass dies nur unter GNU / Linux läuft. Xboard kann als Viewer verwendet werden und unterstützt alle Formen des Schachs.

qbi
quelle
10

PyChess

Ist ein in Python gebauter Schachclient. Sie können die Schachlogikbibliotheken ohne großen Aufwand verwenden.

Beispiele dafür, wie Sie die Bibliotheken zur Steuerung von Schachengines verwenden können, aber Sie können auch nur die Schachlogik verwenden:

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 ist sehr schnell, da es für die eingebaute Engine verwendet wird, und es verfügt über viele erweiterte Funktionen wie das Parsen einer langen Liste von SAN-Verschiebungen, das Generieren von Ausweichprüfungen und die statische Austauschbewertung (SEE).

Thomas Ahle
quelle
Danke fürs Teilen, sieht sehr interessant aus. Was macht das Obige? Könnte ein ähnliches Snippet eine PGN-Datei von der Festplatte importieren und alle Bewegungen in einer ähnlichen Schleife drucken? Gibt es Bibliotheken, um HTML zu exportieren? Gibt es eine Dokumentation, die bei der Erstellung ähnlicher Skripte hilfreich ist?
Joe
Und wenn Sie den Link überprüfen, scheint das eigentliche Tool noch nicht unter Windows zu laufen. Glauben Sie, dass der obige Code unter Windows im Headless-Modus ausgeführt wird?
Joe
1
Der obige Code druckt alle möglichen Züge für Weiß in der Standardposition unter Verwendung der algebraischen Standardnotation aus. Das Parsen von Moves ist mit denselben Modulen ebenfalls einfach. Wenn Ihr Projekt GPL wäre, würde ich einfach das gesamte Lutils-Modul kopieren, das reines Python ist und keine Linux-spezifische Prozessbehandlung erfordert.
Thomas Ahle