问题描述 100分代码 background = []#方格图 block = []#板块 bottom_line = 0 #板块最上层最终处于的行数 #数据读入 for i in range(15): background.append(list(map(int, input().split()))) for i in range(4): block.append(list(map(int, input().split()))) bias = int(input()) #加3行砖块 for i in range(3): a = [1]*10#这个地方如果是0可能会有部分block沉入底部 background.append(a) #计算最终方格图中 板块最上层处于的行数 def run(): for j in range(15): for i in range(4): line_copy = [a + b for a,b in zip(block[i], background[i + j][bias - 1: bias + 3])]#两个list按元素相加,不能直接写listA+listB,不然就是链接了 if 2 in line_copy: return j - 1 return 14 bottom_line = run() #绘出最终方格图 for i in range(4): line_copy = [a + b for a,b in zip(block[i], background[i + bottom_line][bias - 1: bias + 3])] background[i + bottom_line][bias - 1: bias + 3] = line_copy #打印数据 for i in range(15): print(" ".join(map(str,background[i])))