for op in ops[:1]:
r,c,s = op
print('op', op)
r -= 1
c -= 1
for i in range(1, s+1):
left_top = board[r-s][c-s] # 1-1, 1+1 = 0,2
right_top = board[r-s][c+s]
left_bottom = board[r+s][c-s]
right_bottom = board[r+s][c+s]
board[r+s][c-s:c+s] = board[r+s][c-s+1:c+s+1]
# print(np.array(board))
board[r-s][c-s+1:c+s+1] = board[r-s][c-s:c+s]
# print(np.array(board))
for y in range(r-s, r+s):
board[y+1][r+s] = board[y][r+s]
board[y][r-s] = board[y+1][r-s]
board[r][c+s] = right_top
board[r+s][c] = right_bottom
board[r][c-s] = left_bottom
print(np.array(board))
어딘가 이상하다...
for y in range(r-s, r+s):
board[y+1][c+s] = board[y][c+s]
이렇게 할당하면 실패한다. 예를 들어 [1,2,3,4]를 위처럼 shift하면 아래처럼된다..
1234 -> 1134 -> 1114 -> 1111
때문에 반복문도 역순으로 돌아야한다. 일반 리스트처럼 마지막번호는 포함하지않으며, (큰수,작은수-1)로 적어야한다.
for y in range(8,2,-1):
print(y)
[8, 7, 6, 5, 4, 3]