0

我正在研究俄罗斯方块克隆,实际上一切都已完成,但我遇到了一个我不知道如何修复的错误。我花了几天时间无济于事。

发生的情况是,在播放一段时间后,一个棋子会降落并填满它上面的所有方格,一直到顶部。你可以在这张图片中看到我的意思:

在此处输入图像描述

我已将问题缩小到以下几行:

for row in range(4):
  for col in range(4):
    if array[row][col] != 0:
      setDead(row+self.block.pos[0], col+self.block.pos[1], 
      array[row][col])

setDead(row,col,val)设置array[row][col] = val在我拥有的二维数组中。

在这些行之前一切正常,但在这些行之后添加了额外的方块。这些行应该做的是从块阵列复制到板上。

正如我所说,我将非常感谢一些帮助,我已经花了几个小时。

def setDead(row, col, val):
  global dead_blocks
  dead_blocks[row][col] = val

dead_blocks 是我存储所有死块的二维数组

这是一些控制台输出,这些是之前dead_blocks[row][col] = val和之后的打印语句。看起来在第一次分配时,它将列中它上面的所有块设置为相同的值。

控制台输出

如您所见,仅dead_blocks[8][3]应设置为,2但从dead_blocks[8][3]to的正方形dead_blocks[0][3]都设置为2

4

0 回答 0