我正在研究一个俄罗斯方块克隆,一切都已经完成,但我遇到了一个我不知道如何修复的错误。我花了几天时间没有用。
发生了一段时间后,一块棋子会降落并填满其上方的所有方块。你可以在这张图片中看到我的意思:
我已将问题缩小到这些界限:
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]
到dead_blocks[0][3]
的方块都设置为2
。< / p>