шатрандж є bitboard основі, з відкритим вихідним кодом, інтерактивна модуль шахи програмування, що дозволяє маніпуляції шахових позицій і експериментування з пошукових алгоритмів і методів оцінки. Мета шатрандж є написати інструментарій, щоб допомогти в реалізації шахові програми Шеннон Тип B.
Таким чином, швидкість виконання стає менш важливим, ніж ясності коду і виразна сила мови реалізації. Маючи було написано в інтерпретована мова, цей модуль дозволяє шахи програмісту маніпулювати bitboards природним, інтерактивним чином так само, як інструментарій обробки сигналів дозволяють інженерам зв'язку маніпулювати вектори звуків зразків в MATLAB.
Модуль currenly реалізує простий рекурсивний пошук минимакса з AlphaBeta обрізки, ітеративного поглиблення, використовує коротку алгебраїчної нотації, ручки перевірку повторення і верховенства 50 ходів. Особливості Бракує спокою перевіряє, столи з перехідною економікою, negascout і пошук MTD.
Шахи програмування інструментарій доступний у вигляді модуля Python під назвою shatranj.py. Ви також, ймовірно, потрібно відкрити книгу, а також деякі з готових хеш-таблиць, які використовуються в модулі (вони будуть перераховані, якщо модуль не може знайти файл даних).
Помістіть всі три файли в тому ж каталозі, і просто працювати пітона на модулі Python («Пітон shatranj.py"). Наскільки вимоги, все, що потрібно, це остання версія интерпретируемого, мові високого рівня під назвою Python (що-небудь після версії 2.3 повинні працювати нормально). Якщо ви хотіли б трохи підвищення швидкості, шатрандж виглядає для модуля Psyco, і буде використовувати його, якщо він встановлений.
До більше документації не стане доступним, ось коротка сесія зразок:
[Сам-Tannous-Комп'ютер: ~ / шатрандж] олова% пітона
>>> Від імпорту шатрандж *
... Читати дані введення
... Загальний час, щоб прочитати +0,0774528980255 даних
... Знайти дебютна книга шатрандж-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 ',' РА.1 ',' Qd3",
"Qd2 ',' Bd5 ',' bd2 ',' Bf4 ']
>>>
>>> # Тепер грати в гру!
>>> Грати ()
Шатрандж версія 1.10
г: перейти на сторону м: показати ходів
н: нова гра л: список ігор запис
d: табло б: показати книги ходи
глибина пошуку зміна (2-16) за замовчуванням = 5: SD
Питання: кинути
Шатрандж: г
+ --- + --- + --- + --- + --- + --- + --- + --- +
8 | г | п | б | д | к | б | п | р |
+ --- + --- + --- + --- + --- + --- + --- + --- +
7 | р | р | р | р | р | р | р | р |
+ --- + --- + --- + --- + --- + --- + --- + --- +
6 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
5 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
4 | |. | |. | |. | |. |
+ --- + --- + --- + --- + --- + --- + --- + --- +
3 |. | |. | |. | |. | |
+ --- + --- + --- + --- + --- + --- + --- + --- +
2 | Р | Р | Р | Р | Р | Р | Р | Р |
+ --- + --- + --- + --- + --- + --- + --- + --- +
1 | R | N | B | Питання | К | В | Н | R |
+ --- + --- + --- + --- + --- + --- + --- + --- +
б в г д е г ч
Дані програми:
Версія: 1.17
Дата завантаження: 3 Jun 15
Ліцензія: Безкоштовно
Популярність: 94
Коментар не знайдено