您的位置:首页 > 编程语言 > Python开发

CCF Python题解(100分)201604-2 俄罗斯方块

2018-11-13 15:53 344 查看
data = []
new = []
for i in range(15):
data.append(list(map(int, input().split())))

for i in range(4):
new.append(list(map(int, input().split())))

dcol = int(input())

def getpoint(lindex, sindex):
for lrow in range(lindex, 15):  # 大行
for srow in range(sindex, -1, -1):  # 小行
for lcol in range(dcol - 1, dcol + 3):  # 大列

if (new[srow][lcol - dcol + 1] and data[lrow][lcol]) or lrow == 14:
return lrow, srow

for i in range(3, -1, -1):
if new[i] != [0] * 4:
sindex = i
break
for k in range(14, -1, -1):
if data[k] != [0] * 10:
lindex = k
lrow = getpoint(lindex, sindex)[0]
srow = getpoint(lindex, sindex)[1]
if lrow == 14:
lrow = 15
maxrow = srow + 1
else:
maxrow = 4
for row in range(maxrow):
for col in range(4):
data[row + lrow - srow - 1][col + dcol - 1] += new[row][col]

for i in range(15):
for j in range(10):
print(data[i][j], end=" ")
print()
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: