Biblioteki szachowe o otwartym kodzie źródłowym lub przeglądarki pgn

15

Czy ktoś jest zaznajomiony z dowolnymi bibliotekami szachowymi typu open source w dowolnym języku, który może wykonać dowolną z następujących czynności:

  • analizować PGN i / lub FEN
  • obliczyć prawidłowe ruchy szachowe na podstawie pozycji
  • przetwarzać całą grę w szachy

EDYTOWAĆ:

Przepraszam, powinienem być bardziej jasny. Nie szukam oprogramowania typu open source, szukam bibliotek programowania typu open source.

James Tomasino
źródło

Odpowiedzi:

9

Sztokfisz

Sztokfisz ( strona internetowa i github ) jest silnym silnikiem UCI typu open source . Jako taki może zrobić wszystko, o co prosisz, ale zwykle wymaga do tego GUI. Możesz jednak uzyskać dostęp do wszystkich funkcji również za pomocą wiersza polecenia / powłoki.

Bryan
źródło
11

Podstępny

Podstępny jest silnym programem szachowym i może być używany z Winboard, Xboard i Scid. Jest więc dostępny dla wszystkich głównych systemów operacyjnych.

Scid

Scid może utrzymywać bazy danych gier szachowych, można analizować (kończyć) gry. Oprogramowanie jest dostępne dla wszystkich głównych systemów operacyjnych.

Xboard

Xboard to interfejs użytkownika do internetowego serwera szachowego. Korzysta z systemu X Windows, więc zakładam, że działa tylko w systemie GNU / Linux. Xboard może być używany jako przeglądarka i obsługuje wszystkie formy szachów.

qbi
źródło
10

PyChess

To klient szachowy zbudowany w Pythonie. Możesz bez problemu korzystać z bibliotek logiki szachowej.

Oto przykłady wykorzystania bibliotek do sterowania silnikami szachowymi, ale można także użyć tylko logiki szachowej:

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

Jest bardzo szybki, ponieważ jest używany we wbudowanym silniku i ma wiele zaawansowanych funkcji, takich jak parsowanie długiej listy ruchów SAN, generowanie wymiarów czeków i ocena wymiany statycznej (SEE).

Thomas Ahle
źródło
Dzięki za udostępnienie, wygląda bardzo interesująco. Co robi powyższe? Czy podobny fragment kodu może zaimportować plik pgn z dysku i wydrukować wszystkie ruchy w podobnej pętli? Czy ma biblioteki do eksportu html? Czy istnieje dokumentacja, która pomogłaby w wykonaniu podobnego rodzaju skryptów?
Joe
Sprawdzając link, wydaje się, że rzeczywiste narzędzie nie działa jeszcze w systemie Windows - jeszcze. Czy uważasz, że powyższy kod działałby w systemie Windows w trybie bezgłowym?
Joe
1
Powyższy kod drukuje wszystkie możliwe ruchy bieli w domyślnej pozycji, przy użyciu standardowej notacji algebraicznej. Analizowanie ruchów jest również łatwe dzięki tej samej parze modułów. Gdyby twój projekt był GPL, po prostu skopiowałbym cały moduł lutils, który jest czystym Pythonem i nie wymaga żadnej specyficznej dla Linuksa obsługi procesu.
Thomas Ahle,