Shatranj is een bitboard gebaseerde, Open-Source, interactieve schaken programmering module die manipulatie van schaken posities en experimenten laat met zoekalgoritmen en evaluatie technieken. Shatranj doel is om een toolkit om te helpen bij de uitvoering van Shannon Type B schaken programma's te schrijven.
Als zodanig, de snelheid van uitvoering wordt minder belangrijk dan de code duidelijkheid en de expressieve kracht van de taal implementatie. Na in een geïnterpreteerde taal is geschreven, deze module maakt het schaakbord programmeur bitboards manipuleren in een natuurlijke, interactieve manier net als signaalverwerking toolkits maken communicatie ingenieurs om vectoren van geluiden monsters te manipuleren in MATLAB.
De module currenly implementeert een eenvoudige recursieve minimax zoek met alphabeta snoeien, iteratief verdiepen, maakt gebruik van korte algebraïsche notatie, handvatten herhaling controle, en de 50 zetten regel. Features ontbreekt zijn rustig controles, overgang tafels, negascout en MTD zoeken.
Het schaken programmering toolkit is beschikbaar in de vorm van een Python module genaamd shatranj.py. U waarschijnlijk ook moeten de openingenboek evenals enkele van de voorgedefinieerde hash tabellen die worden gebruikt in de module (deze worden berekend indien de module de data file niet kan vinden).
Plaats alle drie bestand in dezelfde map en gewoon lopen python op de python module ("python shatranj.py"). Voor zover eisen, alles wat nodig is, is een recente versie van de interpretatie, hoog niveau taal genaamd Python (iets na versie 2.3 zou moeten werken). Als u graag een beetje van een snelheid boost, Shatranj zoekt de module Psyco en zal het gebruiken als deze is geïnstalleerd.
Totdat er meer documentatie beschikbaar komt, hier is een korte sample sessie:
[Sam-Tannous-Computer: ~ / Shatranj] tin% python
>>> Van Shatranj import *
... Lezen startup data
... Totale tijd om gegevens 0,0774528980255 lezen
... Gevonden opening boek Shatranj-book.bin met 37.848 posities
>>> Positie = positie ("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
>>> Masker = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> Moves = ((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)) & masker
>>>
>>> Moves
1275777090846720L
>>>
>>> Tobase (moves, 2)
'100100010000101000000000000010100000000000000000000'
>>> Display (moves)
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 |. | |. | |. | 1 |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | 1 |. | |. | 1 |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | 1 |. | 1 |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
a b c d e f g h
>>> Position.show_moves (1)
['Rg1', 'O-O', 'f3', 'a3', 'Rb1', 'F4', 'BA6',
'BH6', 'Bd3', 'Qg4', 'De3', 'Pe7', 'Le6', 'Nxg7',
'Qxe4', 'Pe3', 'b4', 'NH4', 'b3', 'Be3', 'Lg5',
'G3', 'KF1', 'Rf1', 'NH6', 'a4', 'NG3', 'Dh5,
'KD1', 'H4', 'h3', 'c3', 'Bxf7', 'Nd6', 'Bb5,
'Pd4', 'QF3', 'g4', 'QF1', 'Bb3', 'QD1', 'QD3',
'QD2', 'BD5', 'Bd2', 'Lf4']
>>>
>>> # Spelen nu een spel!
>>> Play ()
Shatranj versie 1.10
g: switch kanten m: toon juridische stappen
n: nieuw spel l: lijst spel opnemen
d: vertoningsraad b: toon boek moves
sd: verandering zoekdiepte (2-16) default = 5
q: stoppen
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
Software informatie:
Versie: 1.17
Upload datum: 3 Jun 15
Licentie: Gratis
Populariteit: 94
Reacties niet gevonden