我有一个numpy数组,看起来像这样:
可以通过更改“row_num”和“col_num”变量来更改大小
[[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0.]]
在程序中,阵列可能如下所示:
[[0. 0. 0. 0. 0. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 1. 0. 1. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 2. 0. 2. 0. 0.]
[2. 2. 0. 0. 0. 0. 0.]
[1. 1. 0. 0. 0. 1. 0.]]
我想做一个函数,让数字向下移动,就像重力一样。因此,一旦函数运行,数组将如下所示:
[[0. 0. 0. 0. 0. 0. 0.]
[2. 2. 0. 0. 0. 0. 0.]
[1. 1. 0. 0. 0. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 1. 0. 1. 0. 0.]
[2. 2. 2. 0. 2. 0. 0.]
[1. 1. 2. 0. 2. 1. 0.]]
目前,我的函数中的代码如下所示:
for cols in range(col_num):
for rows in range(row_num-1):
if board[rows][cols] == 0 and board[rows+1][cols] == 1:
board[rows+1][cols] = 0
board[rows][cols] = 1
print('move down 1')
elif board[rows][cols] == 0 and board[rows+1][cols] == 2:
board[rows+1][cols] = 0
board[rows][cols] = 2
print('move down 2')
print语句正在工作,因此满足了条件,但它不会更改数组