Shatranj является bitboard основе, с открытым исходным кодом, интерактивная модуль шахматы программирования, который позволяет манипуляции шахматных позиций и эксперименты с поисковыми алгоритмами и методами оценки. Цель Shatranj является написать инструментарий, чтобы помочь в реализации программы Шеннон шахматные Тип B.
Таким образом, скорость выполнения становится менее важным, чем ясности кода и выразительная сила языка реализации. Имея было написано в интерпретируемый язык, этот модуль позволяет шахматный программист манипулировать bitboards в естественном, интерактивной форме так же, как инструментарии обработки сигналов позволяют инженерам связи манипулировать векторы звуков образцов в MATLAB.
Модуль currenly реализует простой рекурсивный поиск минимакса с AlphaBeta обрезки, итеративного углубления, использует короткую алгебраической нотации, ручки проверку повторения и верховенства 50 ходов. Особенности Не хватает покоя проверяет, столы с переходной экономикой, negascout и поиск МТД.
Шахматный программирования инструментарий доступен в виде модуля Python под названием shatranj.py. Вы также, вероятно, нужно открыть книгу, а также некоторые из готовых хэш-таблиц, которые используются в модуле (они будут пересчитаны, если модуль не может найти файл данных).
Поместите все три файла в том же каталоге, и просто работать питона на модуле Python (питон "shatranj.py"). Насколько требования, все, что нужно, это последняя версия интерпретировать, языке высокого уровня под названием Python (что-нибудь после версии 2.3 должны работать нормально). Если вы хотели бы немного повышение скорости, shatranj выглядит для модуля Psyco, и будет использовать его, если он установлен.
До больше документации не станет доступным, вот короткая сессия образец:
[Сам-Tannous-Компьютер: ~ / shatranj] олова% питона
>>> От импорта shatranj *
... читать данные ввода
... общее время, чтобы прочитать 0.0774528980255 данных
... нашел дебютная книга shatranj-book.bin с 37848 позиций
>>> Положение = Положение ("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 = с4
>>> WTM = 1
>>> Маска = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> Перемещает = ((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)) & маску
>>>
>>> Движется
1275777090846720L
>>>
>>> Tobase (движется, 2)
"100100010000101000000000000010100000000000000000000"
>>> Дисплей (перемещается)
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | | , | | , | | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 | , | | , | | , | 1 | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | 1 | , | | , | 1 | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 | , | 1 | , | 1 | , | | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | | , | | , | | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 | , | 1 | , | 1 | , | | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | | , | | , | | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 | , | | , | | , | | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
а б в г д е г ч
>>> Position.show_moves (1)
['Rg1 "," О-О "," 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 ']
>>>
>>> # Теперь играть в игру!
>>> Играть ()
Shatranj версия 1.10
г: перейти на сторону м: показать ходов
н: новая игра л: список игр запись
d: табло б: показать книги ходы
глубина поиска изменение (2-16) по умолчанию = 5: SD
Вопрос: бросить
Shatranj: г
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | г | п | б | д | К | б | п | г |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 | р | р | р | р | р | р | р | р |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | | , | | , | | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 | , | | , | | , | | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | | , | | , | | , | | , |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 | , | | , | | , | | , | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | Р | Р | Р | Р | Р | Р | Р | Р |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 | R | N | В | Вопрос | К | В | N | R |
+ --- + --- + --- + --- + --- + --- + --- + --- +
а б в г д е г ч
Детали программы:
Версия: 1.17
Дата загрузки: 3 Jun 15
Тип распространения: Бесплатная
Популярность: 94
Комментарии не найдены