Py学习  »  Python

如何用python正确打印位板

John Dornbierer • 4 年前 • 725 次点击  

我想用比特板编程一个象棋引擎。因为我对Bitboard不是很熟悉,所以我想先弄清楚如何使用它们。我写了一个小函数来打印比特板。这就是我偶然发现问题的地方。我的函数似乎正确地打印出了列组,但似乎没有正确地打印出文件。

def print_bitboard(bitboard):
    board = str(bin(bitboard)).zfill(64)
    for i in range(8):
    print(board[8*i+0] + " " + board[8*i+1] + " " + board[8*i+2] + " " + 
          board[8*i+3] + " " + board[8*i+4] + " " + board[8*i+5] + " " + 
          board[8*i+6] + " " + board[8*i+7])


bitboard1 = 
int("0000000000000000000000000000000000000000000000001111111100000000", 2)  
# 2nd rank
bitboard2 = 
int("1000000010000000100000001000000010000000100000001000000010000000", 2)  
# file A

print_bitboard(bitboard1)
print("")
print_bitboard(bitboard2)

结果:

0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 b
1 1 1 1 1 1 1 1 
0 0 0 0 0 0 0 0

0 b 1 0 0 0 0 0     ----> wrong, should be: 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0                             1 0 0 0 0 0 0 0
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44327
 
725 次点击  
文章 [ 2 ]  |  最新文章 4 年前