Shatranj là một bitboard dựa trên mã nguồn mở, tương tác môđun chương trình cờ vua cho phép thao tác của các nước cờ và thử nghiệm với các thuật toán tìm kiếm và các kỹ thuật đánh giá. Mục tiêu của Shatranj là viết một bộ công cụ để hỗ trợ trong việc thực hiện các chương trình cờ vua Shannon Loại B.
Như vậy, tốc độ thực thi trở nên ít quan trọng thì rõ ràng mã và khả năng diễn đạt của ngôn ngữ thực hiện. Được viết bằng một ngôn ngữ giải thích, mô-đun này cho phép các lập trình viên cờ vua để thao tác bitboards trong một cách tương tác tự nhiên giống như các bộ công cụ xử lý tín hiệu cho phép các kỹ sư truyền thông để thao tác vectơ của âm thanh mẫu trong MATLAB.
Các mô-đun currenly thực hiện một tìm kiếm minimax đệ quy đơn giản với alphabeta tỉa cành, sâu lặp đi lặp lại, sử dụng ký hiệu đại số ngắn, xử lý kiểm tra lặp lại, và các quy tắc 50 di chuyển. Các tính năng còn thiếu là kiểm tra hoạt động gì, bảng chuyển đổi, negascout và MTD tìm kiếm.
Bộ công cụ lập trình cờ vua có sẵn trong các hình thức của một mô-đun Python gọi shatranj.py. Bạn cũng có thể sẽ cần những cuốn sách mở cửa cũng như một số các bảng băm được xây dựng trước đó được sử dụng trong suốt các module (số này sẽ được tính toán lại nếu module không thể tìm thấy các tập tin dữ liệu).
Đặt tất cả ba tập tin trong cùng một thư mục và chỉ cần chạy python trên các module python ("python shatranj.py"). Theo như yêu cầu, tất cả những gì cần thiết là một phiên bản mới của các giải thích, ngôn ngữ cấp cao được gọi là Python (bất cứ điều gì sau khi phiên bản 2.3 sẽ làm việc tốt). Nếu bạn muốn một chút của một tăng tốc độ, shatranj trông cho module Psyco và sẽ sử dụng nó nếu nó được cài đặt.
Cho đến khi tài liệu trở nên sẵn có, đây là một phiên mẫu ngắn:
[Sam-Tannous-Computer: ~ / shatranj] thiếc% python
>>> Từ nhập khẩu shatranj *
... Đọc dữ liệu khởi động
... Tổng thời gian để đọc dữ liệu ,0774528980255
... Tìm thấy cuốn sách mở shatranj-book.bin với 37.848 vị trí
>>> Position = Chức vụ ("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
>>> Mask = position.pinned (from_square, WTM)
>>> Ne_pieces = diag_mask_ne [from_square] & all_pieces
>>> Nw_pieces = diag_mask_nw [from_square] & all_pieces
>>> Di chuyển = ((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)) & mặt nạ
>>>
>>> Di chuyển
1275777090846720L
>>>
>>> Tobase (di chuyển, 2)
'100100010000101000000000000010100000000000000000000'
>>> Màn hình (di chuyển)
+ --- + --- + --- + --- + --- + --- + --- + --- +
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', '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']
>>>
>>> # Bây giờ chơi một trò chơi!
>>> Chơi ()
Shatranj phiên bản 1.10
g: bên chuyển đổi m: cho đi hợp pháp
n: trò chơi mới l: kỷ lục trò chơi danh sách
d: hiển thị bảng b: hiển thị di chuyển cuốn sách
thay đổi độ sâu tìm kiếm (2-16) mặc định = 5: sd
q: bỏ thuốc lá
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
Các chi tiết về phần mềm:
Phiên bản: 1.17
Ngày tải lên: 3 Jun 15
Giấy phép: Miễn phí
Phổ biến: 94
Bình luận không