我一直在尝试制作一个 GO 棋盘游戏,在 python 中使用 pygame 和一个用于存储棋盘位置和石头颜色(0、1、2)的 numpy 数组。我的问题是我一直在使用 for 循环一次检查每个索引,并通过添加或删除一个 int 来检查相邻的索引:
columns = 5
rows = 5
def create_board():
board = np.zeros((row,col))
return board
board = create_board()
def libertyCheck():
for c in range(columns):
for r in range(rows):
if board[c][r+1] == 0:
x = 1
(lots more ifs, then add x's to see if all spaces are occupied)
这种方法似乎可以捕获单个棋子(只要它不在棋盘边缘,因为它也会开始导致越界问题),但是一旦几个相同颜色的棋子靠近每个棋子,就会变得非常复杂其他,可能需要也可能不需要捕获。
必须有更好的方法来搜索这些索引而不会导致超出范围?一个可以让我跟踪所有石头及其相邻空间的方法?