Shatranj adalah berbasis bitboard, Open-Source, modul pemrograman catur interaktif yang memungkinkan manipulasi posisi catur dan eksperimen dengan algoritma pencarian dan teknik evaluasi. Tujuan Shatranj adalah untuk menulis toolkit untuk membantu dalam melaksanakan program catur Shannon Tipe B.
Dengan demikian, kecepatan eksekusi menjadi kurang penting maka kode kejelasan dan kekuatan ekspresif dari bahasa pelaksanaan. Memiliki telah ditulis dalam bahasa ditafsirkan, modul ini memungkinkan programmer catur untuk memanipulasi bitboards dalam cara interaktif alami seperti toolkit pemrosesan sinyal memungkinkan para insinyur komunikasi untuk memanipulasi vektor suara sampel di MATLAB.
Modul currenly mengimplementasikan pencarian minimax rekursif sederhana dengan Alpha-Beta pemangkasan, pendalaman berulang, menggunakan notasi aljabar singkat, menangani pengulangan cek, dan aturan 50 bergerak. Fitur kurang adalah pemeriksaan diam, tabel transisi, negascout dan MTD pencarian.
Toolkit pemrograman catur tersedia dalam bentuk modul Python disebut shatranj.py. Anda juga akan mungkin perlu buku pembukaan serta beberapa tabel hash pre-built yang digunakan di seluruh modul (ini akan dihitung ulang jika modul tidak dapat menemukan file data).
Tempatkan ketiga file dalam direktori yang sama dan jalankan python pada modul python ("python shatranj.py"). Sejauh persyaratan, semua yang diperlukan adalah versi terbaru dari ditafsirkan, bahasa tingkat tinggi yang disebut Python (apa-apa setelah versi 2.3 harus bekerja dengan baik). Jika Anda ingin sedikit meningkatkan kecepatan, Shatranj mencari modul Psyco dan akan menggunakannya jika diinstal.
Sampai dokumentasi lebih menjadi tersedia, di sini adalah sesi sampel singkat:
[Sam-Tannous-Komputer: ~ / Shatranj] stannous% python
>>> Dari Shatranj impor *
... Membaca data startup
... Total waktu untuk membaca data ,0774528980255
... Menemukan buku pembukaan Shatranj-book.bin dengan 37.848 posisi
>>> Posisi = Posisi ("r1bqk2r / pppp1ppp / 2N5 / 5N2 / 2B1n3 / 8 / PPP1QPPP / R1B1K2R")
>>> All_pieces = position.piece_bb ["b_occupied"] | position.piece_bb ["w_occupied"]
>>> Other_pieces = position.piece_bb ["b_occupied"]
>>> From_square = c4
>>> WTM = 1
>>> Topeng = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> Bergerak = ((diag_attacks_ne [from_square] [ne_pieces] & other_pieces) |
... (Diag_attacks_ne [from_square] [ne_pieces] & ~ all_pieces) |
... (Diag_attacks_nw [from_square] [nw_pieces] & other_pieces) |
... (Diag_attacks_nw [from_square] [nw_pieces] & ~ all_pieces)) & mask
>>>
>>> Bergerak
1275777090846720L
>>>
>>> Tobase (bergerak, 2)
'100100010000101000000000000010100000000000000000000'
>>> Display (bergerak)
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 |. | |. | |. | 1 |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | 1 |. | |. | 1 |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
ABCD EFGH
>>> Position.show_moves (1)
['Rg1', 'O-O', 'f3', 'a3', 'Rb1', 'f4', 'BA6',
'BH6', 'BD3', 'Qg4', 'QE3', 'NE7', 'BE6', 'Nxg7',
'Qxe4', 'NE3', 'b4', 'NH4', 'b3', 'Be3', 'Bg5',
'G3', 'Kf1', 'Rf1', 'Nh6', 'a4', 'NG3', 'Qh5',
'KD1', 'h4', 'h3', 'c3', 'Bxf7', 'Nd6', 'Bb5',
'Nd4', 'Qf3', 'g4', 'Qf1', 'BB3', 'Qd1', 'Qd3',
'Qd2', 'BD5', 'BD2', 'BF4']
>>>
>>> # Sekarang bermain game!
>>> Bermain ()
Shatranj versi 1.10
g: beralih sisi m: menunjukkan langkah hukum
n: permainan baru l: Daftar catatan permainan
d: display papan b: menampilkan buku bergerak
kedalaman pencarian perubahan (2-16) default = 5: sd
q: keluar
Shatranj: d
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | r | n | b | q | k | b | n | r |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 | p | p | p | p | p | p | p | p |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | P | P | P | P | P | P | P | P |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 | R | N | B | Q | K | B | N | R |
+ --- + --- + --- + --- + --- + --- + --- + --- +
a b c d e f g h
Rincian Software:
Versi: 1.17
Tanggal Upload: 3 Jun 15
Lisensi: Gratis
Popularitas: 94
Komentar tidak ditemukan