问题描述
试题编号: | 201604-2 |
试题名称: | 俄罗斯方块 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。 输入格式 输入的前15行包含初始的方格图,每行包含10个数字,相邻的数字用空格分隔。如果一个数字是0,表示对应的方格中没有方块,如果数字是1,则表示初始的时候有方块。输入保证前4行中的数字都是0。 输出格式 输出15行,每行10个数字,相邻的数字之间用一个空格分隔,表示板块下落后的方格图。注意,你不需要处理最终的消行。 样例输入 0 0 0 0 0 0 0 0 0 0 样例输出 0 0 0 0 0 0 0 0 0 0 |
nums=[]
pattern=[]
for i in range(15):
num=list(map(int,input().split()))
nums.append(num)
for i in range(4):
num=list(map(int,input().split()))
pattern.append(num)
n=int(input())
#
while 1:
if sum(pattern[-1])==0:
c=pattern[-1]
pattern.pop()
pattern=[c]+pattern
else:
break
#
n-=1
m=4
while m<15:
flag=0
z=m
for i in range(3,-1,-1):
for j in range(4):
if nums[z][n+j]==pattern[i][j]==1:
flag=1
break
z-=1
if flag:
break
if flag:
m-=1
for i in range(3,-1,-1):
for j in range(4):
nums[m][n+j]^=pattern[i][j]
m-=1
break
if m==14:
for i in range(3,-1,-1):
for j in range(4):
nums[m][n+j]^=pattern[i][j]
m-=1
break
m+=1
for i in range(15):
for j in range(10):
print(nums[i][j],end=' ')
print()