You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pygame编写俄罗斯方块给numpy zeros数组赋值RGB报ValueError如何解决

错误原因
  • Numpy数组初始化维度不匹配:你当前创建的matrix = np.zeros((24, 10))是二维数组,每个位置只能存储单个数值,但RGB颜色是包含3个值的序列,无法直接存入单值位置,因此触发该报错。
  • 赋值逻辑存在多余封装:如果self.color本身已经是符合要求的RGB序列(比如(255, 0, 0)格式的元组),代码中[self.color]的写法又额外套了一层列表,会变为嵌套序列,进一步加剧类型不匹配问题。
修复步骤
  1. 调整矩阵初始化参数,增加RGB通道维度:
# 第三个维度3对应R、G、B三个通道,dtype设置为uint8适配颜色值0~255的取值范围
matrix = np.zeros((24, 10, 3), dtype=np.uint8)

如果你的颜色包含透明Alpha通道,可将第三个维度的数值改为4。

  1. 修改matrixUpdate方法的赋值逻辑,去掉多余的列表包裹:
def matrixUpdate(self, matrix):
    for part in self.getMino():
        y_idx = (part[1] + self.y) // 40
        x_idx = (part[0] + self.x) // 40
        # 直接赋值颜色序列即可
        matrix[y_idx, x_idx] = self.color
    return matrix

内容的提问来源于stack exchange,提问作者Tim Drake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 05:15:03