为什么这个 if 语句会给我一个 ValueError?

why does this if statement give my a ValueError?

我试图遍历一个 numpy 二维数组并检查值 1,2 和 3 在数组中出现的位置,但我收到一个值错误,因为 numpy 声明它不明确。解决此问题的最佳方法是什么?

for x in range(row):
        for y in range(row):
            if grid[x,y] == 1:
                pygame.draw.rect(window, (0,255,0), (x * distance, y * distance, distance, distance))
            elif grid[x,y] == 2:
                pygame.draw.rect(window, (0,255,0), (x * distance, y * distance, distance, distance))
            elif  grid[x,y] == 3:
                pygame.draw.rect(window, (255,0,0), (x * distance, y * distance, distance, distance))
 if grid[x,y] == 1:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

尝试使用 grid[x][y] 而不是网格 [x,y]

根据评论中显示的 generateGrid 函数,

generateGrid函数中将grid[i.x, i.y]替换为grid[i.x][ i.y]

这已解决您的问题。