Python求助TEL
查看原帖
Python求助TEL
1200862
while_111楼主2024/2/28 20:20
m, n = map(int,input().split())
nums = []
cur = []
for i in range(1,(m**2) + 1):
    cur.append(i)
    if i % m == 0:
        nums.append(cur)
        cur = []
for idx in range(n):
    x, y, rs, z = map(int,input().split())
    x = x - 1
    y = y - 1
    if z == 0:
        for r in range(1,rs+1):
            #截取
            le = 2*r + 1
            d1 = nums[x-r][y-r:y-r+le]
            d3 = nums[x+r][y-r:y-r+le]
            d2 = []
            d4 = []
            for k in range(le):
                d2.append(nums[x-r+k][y+r])
                d4.append(nums[x-r+k][y-r])
                nums[x-r+k][y+r] = d1[k]
                nums[x-r+k][y-r] = d3[k]
            #顺旋转
            nums[x-r][y-r:y-r+le] = list(reversed(d4))
            nums[x+r][y-r:y-r+le] = list(reversed(d2))
    else:
        for r in range(1,rs+1):
            #截取
            le = (2*r) + 1
            d1 = nums[x-r][y-r:y-r+le]
            d3 = nums[x+r][y-r:y-r+le]
            d2 = []
            d4 = []
            for k in range(le):
                d2.append(nums[x-r+k][y+r])
                d4.append(nums[x-r+k][y-r])
                nums[x-r+k][y+r] = d3[le-k-1]
                nums[x-r+k][y-r] = d1[le-k-1]
            #逆旋转
            nums[x-r][y-r:y-r+le] = d2
            nums[x+r][y-r:y-r+le] = d4
for lst in nums:
        print(' '.join(map(str,lst)))



                
            
            
    
    

2024/2/28 20:20
加载中...