Shatranj este un, open-source bazate pe bitboard, modul interactiv de programare șah, care permite manipularea poziții de șah și experimentarea cu algoritmi de căutare și tehnici de evaluare. Scopul Shatranj este de a scrie un set de instrumente pentru a ajuta la punerea în aplicare a programelor de sah Shannon de tip B.
Ca atare, viteza de executie devine mai puțin importantă, atunci codul claritate și putere expresivă a limbii de implementare. Având scris într-o limbă interpretat, acest modul permite programatorului de șah pentru a manipula bitboards într-un mod natural, interactiv fel ca toolkit de procesare a semnalului permite inginerilor de comunicare pentru a manipula vectori de sunete probe în MATLAB.
Modulul implementează currenly o simplă căutare recursiv minimax cu tăiere alfa-beta, aprofundare iterativ, foloseste notatia algebrica scurt, manere verificare repetiție, și statul de 50 mișcare. Caracteristici lipsesc sunt controale repaus, mese de tranziție, negascout și MTD căutării.
Setul de instrumente de programare șah este disponibil sub forma unui modul Python numit shatranj.py. Veți avea, de asemenea, probabil nevoie de carte de deschidere, precum și unele dintre mese pre-construite de dispersie care sunt folosite de-a lungul modul (acestea vor fi recalculate în cazul în care modulul nu poate găsi fișierul de date).
Publicați toate cele trei file în același director și rulați pur și simplu piton pe modulul python ("shatranj.py python"). În ceea ce privește cerințele, tot ce este necesar este o versiune recentă a interpretat, limbaj de nivel înalt numit Python (nimic după versiunea 2.3 ar trebui să funcționeze bine). Dacă doriți un pic de un impuls de viteză, shatranj caută modulul Psyco și va folosi în cazul în care este instalat.
Până mai multă documentație devine disponibil, aici este o sesiune de probă scurt:
[Sam-Tannous-Computer: ~ / shatranj] staniu% piton
>>> Din shatranj import *
... Citirea datelor de pornire
... Timpul total pentru a citi 0.0774528980255 date
... Găsit carte de deschidere shatranj-book.bin cu 37,848 posturi
>>> Poziție = Poziție ("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
>>> Masca = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> mută = ((diag_attacks_ne [from_square] [ne_pieces] și other_pieces) |
... (Diag_attacks_ne [from_square] [ne_pieces] și ~ all_pieces) |
... (Diag_attacks_nw [from_square] [nw_pieces] și other_pieces) |
... (Diag_attacks_nw all_pieces [from_square] [nw_pieces] & ~)) & mască
>>>
>>> miscari
1275777090846720L
>>>
>>> Tobase (miscari, 2)
"100100010000101000000000000010100000000000000000000"
>>> afișare (miscari)
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 |. | |. | |. | 1 |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | 1 |. | |. | 1 |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
a b c d ef g h
>>> 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']
>>>
>>> # Juca acum un joc!
>>> Juca ()
Shatranj versiunea 1.10
g: fete comutator m: arată mutări legale
n: nou joc l: lista înregistrări joc
D: Afișaj bord b: arata miscari de carte
adâncime de căutare schimbare (2-16) default = 5: sd
q: renunta
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
Detalii soft:
Versiune: 1.17
Incarca data: 3 Jun 15
Licenţă: Gratuit
Popularitate: 94
Comentariile nu a fost găsit