Bermain catur sumber terbuka atau pgn melihat perpustakaan

15

Adakah yang akrab dengan perpustakaan catur open source dalam bahasa apa pun yang dapat melakukan hal-hal berikut ini:

  • parsing PGN dan / atau FEN
  • menghitung gerakan catur yang valid berdasarkan posisi
  • memproses seluruh permainan catur

EDIT:

Maaf, saya harus lebih jelas. Saya tidak mencari perangkat lunak open source, saya mencari perpustakaan pemrograman open source.

James Tomasino
sumber

Jawaban:

9

Stockfish

Stockfish ( situs web dan github ) adalah open source dan mesin UCI yang sangat kuat . Karena itu dapat melakukan semua yang Anda minta, tetapi biasanya membutuhkan GUI untuk melakukannya. Namun Anda dapat mengakses semua fungsionalitas melalui prompt perintah / shell juga.

Bryan
sumber
11

Licik

Crafty adalah program catur yang kuat dan dapat digunakan dengan Winboard, Xboard, dan Scid. Jadi tersedia untuk semua sistem operasi utama.

Scid

Scid dapat mengelola basis data game catur, Anda dapat menganalisis (mengakhiri) game. Perangkat lunak tersedia untuk semua sistem operasi utama.

Xboard

Xboard adalah antarmuka pengguna ke Server Catur Internet. Ini menggunakan Sistem X Windows, jadi saya menganggap ini hanya berjalan di bawah GNU / Linux. Xboard dapat digunakan sebagai penonton dan mendukung semua bentuk catur.

qbi
sumber
10

PyChess

Adalah klien catur yang dibangun dengan Python. Anda dapat menggunakan perpustakaan logika catur itu tanpa banyak kesulitan.

Adalah contoh bagaimana Anda menggunakan perpustakaan untuk mengendalikan mesin catur, tetapi Anda juga bisa menggunakan logika catur saja:

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

Ini sangat cepat, karena digunakan untuk engine bawaan, dan memiliki banyak fitur canggih seperti parsing daftar panjang pergerakan SAN, menghasilkan penghindaran cek dan evaluasi pertukaran statis (SEE).

Thomas Ahle
sumber
Terima kasih sudah berbagi, terlihat sangat menarik. Apa yang dilakukan di atas? Bisakah potongan serupa mengimpor file pgn dari disk dan mencetak semua gerakan dalam satu lingkaran yang sama? Apakah ada perpustakaan untuk mengekspor html? Apakah ada dokumentasi yang akan membantu melakukan penulisan skrip sejenis?
Joe
Dan memeriksa tautannya, sepertinya alat yang sebenarnya tidak berjalan di Windows - belum. Apakah Anda pikir kode di atas akan berjalan pada Windows dalam mode tanpa kepala?
Joe
1
Kode di atas mencetak semua kemungkinan gerakan untuk putih di posisi default, menggunakan Notasi Aljabar Standar. Parsing move juga mudah dengan beberapa modul yang sama. Jika proyek Anda adalah GPL, saya hanya akan menyalin seluruh modul lutil, yang merupakan Python murni dan tidak memerlukan penanganan proses khusus Linux.
Thomas Ahle