Бібліотеки з відкритим вихідним кодом або перегляд у шахті


15

Хтось знайомий з будь-якою шаховою бібліотекою з відкритим кодом будь-якою мовою, яка може виконувати будь-яку з наступних дій:

  • розбір PGN та / або FEN
  • обчислити дійсні шахові рухи на основі положення
  • обробляти цілу гру в шахи

Редагувати:

Вибачте, я повинен бути більш чітким. Я не шукаю програмного забезпечення з відкритим кодом, я шукаю бібліотеки програмування з відкритим кодом.

Відповіді:


9

Риба

Stockfish ( веб-сайт та github ) - це відкритий і дуже сильний двигун UCI . Як такий, він може робити все, про що ви просите, але для цього зазвичай потрібен графічний інтерфейс. Однак ви можете отримати доступ до всіх функцій також через командний рядок / оболонку.


11

Хитрий

Crafty - це сильна шахова програма, яку можна використовувати з Winboard, Xboard та Scid. Тож він доступний для всіх основних операційних систем.

Шлях

Scid може підтримувати бази даних шахових ігор, ви можете аналізувати (закінчувати) ігри. Програмне забезпечення доступне для всіх основних операційних систем.

Xboard

Xboard - це інтерфейс користувача до шахового сервера Internet. Він використовує систему X Windows, тому я припускаю, що це працює лише під GNU / Linux. Xboard може використовуватися як глядач і підтримує всі форми шахів.


10

PyChess

Це шаховий клієнт, побудований в Python. Ви можете використовувати шахові логічні бібліотеки без особливих проблем.

Наведемо приклади того, як ви можете використовувати бібліотеки для управління шаховими двигунами, але ви також можете використовувати лише шахову логіку:

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

Це дуже швидко, оскільки він використовується для вбудованого двигуна, і він має багато вдосконалених функцій, таких як аналіз довгого списку ходів SAN, генерування контрольних ухилень та статична оцінка обміну (SEE).


Дякуємо за обмін, виглядає дуже цікаво. Що робить вищезазначене? Чи може подібний фрагмент імпортувати файл pgn з диска та надрукувати всі рухи у подібному циклі? Чи є в бібліотеках для експорту html? Чи є документація, яка допомогла б зробити подібний сценарій?
Джо

І перевіривши посилання, здається, що власне інструмент не працює в Windows - поки. Ви думаєте, що вищезазначений код працюватиме в Windows у безголовому режимі?
Джо

1
Вищевказаний код друкує всі можливі рухи для білого в положенні за замовчуванням, використовуючи Стандартні алгебраїчні позначення. Рух розбору також простий за допомогою тієї ж пари модулів. Якби ваш проект був GPL, я б просто скопіював весь модуль lutils, який є чистим Python і не потребує спеціальних процесів для обробки Linux.
Томас Ейл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.