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.

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.


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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.