Shatranj yra bitboard pagrindu, atviro kodo, interaktyvi šachmatų programavimo modulis, kuris leidžia manipuliuoti šachmatų pozicijų ir eksperimentus su paieškos algoritmų ir vertinimo metodus. Shatranj tikslas yra parašyti priemonių rinkinį, padedantį įgyvendinti Šanonas B tipo šachmatų programas.
Kaip, pavyzdžiui, vykdymo greitis tampa mažiau svarbus tada kodas aiškumas ir išraiškingas galios įgyvendinimo kalba. Atsižvelgdama parašyta aiškinami kalba, šis modulis leidžia šachmatų programuotojas manipuliuoti bitboards natūraliu, interaktyvios būdu, panašiai kaip signalo apdorojimo įrankių komplektai leisti ryšių inžinieriai manipuliuoti vektorius garsų pavyzdžių MATLAB.
Modulis currenly įgyvendina paprastą rekursinį Minimax paieška su alphabeta genėjimo, kartotinis gilinimo, naudoja trumpą algebrinė notacijos, rankenos pasikartojimo čekį ir 50 move taisyklę. Įranga trūksta yra inertiškos patikrinimus, pereinamieji stalai, negascout ir DTD paieška.
Šachmatai programavimo priemonių rinkinys yra prieinama iš Python'o modulių vadinamas shatranj.py forma. Jūs taip pat gali prireikti atidarymo knyga, taip pat kai kurie iš anksto pastatytas maišos lentelėmis, kurie naudojami visoje modulio (tai bus perskaičiuotas, jeigu modulis negali rasti duomenų failą).
Sudėkite visus tris failą į tą pačią direktoriją ir tiesiog paleisti python apie python modulio ("python shatranj.py"). Kiek reikalavimus, viskas, ko reikia yra naujausia programos versija, aiškinama, aukšto lygio kalba vadinama "Python (nors po versijos 2.3 turėtų veikti gerai). Jei norite šiek tiek greičio padidinti, shatranj atrodo modulio psyco ir naudoti jį, jei jis yra įrengtas.
Iki tampa prieinama daugiau dokumentacija, čia yra trumpas pavyzdys sesijos:
[Sam Tannous-Kompiuteris: ~ / shatranj] alavo% pitonas
>>> Iš shatranj import *
... Skaityti paleisties duomenis
... Visą laiką skaityti duomenis ,0774528980255
... Rasti atidarymas knyga shatranj-book.bin su 37.848 pozicijų
>>> Padėtis = pozicija ("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
>>> Kaukė = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> juda = ((diag_attacks_ne [from_square] [ne_pieces] ir other_pieces) |
... (Diag_attacks_ne [from_square] [ne_pieces] & ~ all_pieces) |
... (Diag_attacks_nw [from_square] [nw_pieces] ir other_pieces) |
... (Diag_attacks_nw [from_square] [nw_pieces] & ~ all_pieces)) ir kaukę
>>>
>>> juda
1275777090846720L
>>>
>>> Tobase (juda, 2)
"100100010000101000000000000010100000000000000000000"
>>> Ekranas (juda)
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 |. | |. | |. | 1 |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | 1 |. | |. | 1 |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
A B C D E G val
>>> position.show_moves (1)
['Rg1 "," O P "," 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 ']
>>>
>>> # Dabar žaisti žaidimą!
>>> Žaisti ()
Shatranj versija 1.10
G: pereiti pusių M: rodo teisinių juda
N: Naujoji žaidimas L: Sąrašas žaidimas įrašas
D: ekranas lenta B: parodyti knygų juda
SD: Keisti paiešką gylis (2-16) nutylėjimą = 5
Q: mesti
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 | K | K | B | N | R |
+ --- + --- + --- + --- + --- + --- + --- + --- +
A B C D E G val
Programinė detalės:
Versija: 1.17
Įkėlimo datą: 3 Jun 15
Licencija: Nemokamai
Populiarumas: 94
Komentarai nerastas