修改矩阵。 python非常有趣的任务

时间:2019-03-12 13:57:33

标签: python arrays list matrix

比方说,我们有以下列表

mag = [
    [0, 1, 1, 1],
    [0, 1, 0, 1],
    [1, 1, 0, 1],
    [0, 1, 0, 1],
]

问题:需要添加或合并新行,例如[1, 0, 0, 1]

规则:如果我添加与某些行重叠的列表,则应根据已与提供的项目重叠的项目来添加或合并列表。

示例(开头的矩阵矩阵):

mag.add([0, 0, 1, 0])
[
    [0, 1, 1, 1], # << -- here is were overlapped
    [0, 1, 1, 1], # << -- here will be merged
    [1, 1, 0, 1],
    [0, 1, 0, 1],
]

示例2 (开头的矩阵矩阵):

mag.add([0, 1, 0, 0])
[
    [0, 1, 1, 1],
    [0, 1, 0, 1],
    [1, 1, 0, 1],
    [0, 1, 0, 1], # << -- overlaps first list from end, will be appended
    [0, 1, 0, 0],
]

示例3 (开头的矩阵矩阵):

mag.add([1, 0, 0, 0])
[
    [0, 1, 1, 1],
    [0, 1, 0, 1],
    [1, 1, 0, 1], # << -- overlaps here
    [1, 1, 0, 1], # << -- here were merged
]

更清楚地说,这是俄罗斯方块,其中[0, 1, 0, 1]之类的新列表是一个数字,其中1是一个块而0是一个自由空间。我们需要了解从下到上移动图形的位置。

0 个答案:

没有答案