我正在研究俄罗斯方块克隆,实际上一切都已完成,但我遇到了一个我不知道如何修复的错误。我花了几天时间无济于事。
发生的情况是,在播放一段时间后,一个棋子会降落并填满它上面的所有方格,一直到顶部。你可以在这张图片中看到我的意思:
我已将问题缩小到以下几行:
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
。